GNU bug report logs - #33238
Fail nicely when profile is not found

Previous Next

Package: guix;

Reported by: swedebugia <swedebugia <at> riseup.net>

Date: Fri, 2 Nov 2018 07:56:02 UTC

Severity: normal

To reply to this bug, email your comments to 33238 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#33238; Package guix. (Fri, 02 Nov 2018 07:56:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to swedebugia <swedebugia <at> riseup.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Fri, 02 Nov 2018 07:56:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: swedebugia <swedebugia <at> riseup.net>
To: bug-guix <at> gnu.org
Subject: Fail nicely when profile is not found
Date: Fri, 2 Nov 2018 09:00:17 +0100
Hi

I installed guix from AUR and ran into this:

$ guix pull -l
Backtrace:
           8 (apply-smob/1 #<catch-closure 55dd9a29b6e0>)
In ice-9/boot-9.scm:
    705:2  7 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
    619:8  6 (_ #(#(#<directory (guile-user) 55dd9a356140>)))
In guix/ui.scm:
  1578:12  5 (run-guix-command _ . _)
In ice-9/boot-9.scm:
    829:9  4 (catch srfi-34 #<procedure 55dd9b57f7e0 at guix/ui.scm…> …)
    829:9  3 (catch system-error #<procedure 55dd9b57f880 at guix/s…> …)
    829:9  2 (catch git-error #<procedure 55dd9b57f640 at guix/scri…> …)
    829:9  1 (catch system-error #<procedure 55dd9acab900 at guix/s…> …)
In unknown file:
           0 (raise #<condition &profile-not-found-error [profile: "…>)

ERROR: In procedure raise:
Wrong type (expecting exact integer): #<condition 
&profile-not-found-error [profile: "/home/egil/.config/guix/current"] 
55dd9ac9a240>

The install went fine but guix is not working :/ so I will do a manual 
binary install instead.

I could try crafting a patch testing if the directory exist if somebody 
is willing to point me to the right file (and perhaps an example of a 
procedure that can check this)

Cheers
Swedebugia

$ guix --version
guix (GNU Guix) 0.15.0
Copyright (C) 2018 the Guix authors
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.





Information forwarded to bug-guix <at> gnu.org:
bug#33238; Package guix. (Mon, 17 Dec 2018 11:05:02 GMT) Full text and rfc822 format available.

Message #8 received at 33238 <at> debbugs.gnu.org (full text, mbox):

From: swedebugia <at> riseup.net
To: 33238 <at> debbugs.gnu.org
Cc: bug-Guix <bug-guix-bounces+swedebugia=riseup.net <at> gnu.org>
Subject: Re: bug#33238: Fail nicely when profile is not found
Date: Mon, 17 Dec 2018 03:04:04 -0800
On 2018-11-02 09:00, swedebugia wrote:
> Hi
> 
> I installed guix from AUR and ran into this:
> 
> $ guix pull -l
> Backtrace:
>            8 (apply-smob/1 #<catch-closure 55dd9a29b6e0>)
> In ice-9/boot-9.scm:
>     705:2  7 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
> In ice-9/eval.scm:
>     619:8  6 (_ #(#(#<directory (guile-user) 55dd9a356140>)))
> In guix/ui.scm:
>   1578:12  5 (run-guix-command _ . _)
> In ice-9/boot-9.scm:
>     829:9  4 (catch srfi-34 #<procedure 55dd9b57f7e0 at guix/ui.scm…> …)
>     829:9  3 (catch system-error #<procedure 55dd9b57f880 at guix/s…> …)
>     829:9  2 (catch git-error #<procedure 55dd9b57f640 at guix/scri…> …)
>     829:9  1 (catch system-error #<procedure 55dd9acab900 at guix/s…> …)
> In unknown file:
>            0 (raise #<condition &profile-not-found-error [profile: "…>)
> 
> ERROR: In procedure raise:
> Wrong type (expecting exact integer): #<condition
> &profile-not-found-error [profile: "/home/egil/.config/guix/current"]
> 55dd9ac9a240>
> 
> The install went fine but guix is not working :/ so I will do a manual
> binary install instead.
> 
> I could try crafting a patch testing if the directory exist if
> somebody is willing to point me to the right file (and perhaps an
> example of a procedure that can check this)
> 
> Cheers
> Swedebugia
> 
> $ guix --version
> guix (GNU Guix) 0.15.0
> Copyright (C) 2018 the Guix authors
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.

This is still present:

sdb <at> antelope ~/src/guix$ ./pre-inst-env guix describe
Git checkout:
  repository: /home/sdb/src/guix
  branch: HEAD
  commit: c4cc1b9d20212369d485a7b3788160117926ea3b


sdb <at> antelope ~/src/guix$ ./pre-inst-env guix pull -l
Backtrace:
           8 (apply-smob/1 #<catch-closure 9e6d4c0>)
In ice-9/boot-9.scm:
    705:2  7 (call-with-prompt _ _ #<procedure default-prompt-handle…>)
In ice-9/eval.scm:
    619:8  6 (_ #(#(#<directory (guile-user) 9e5e910>)))
In guix/ui.scm:
  1603:12  5 (run-guix-command _ . _)
In ice-9/boot-9.scm:
    829:9  4 (catch srfi-34 #<procedure aa39860 at guix/ui.scm:615:…> …)
    829:9  3 (catch system-error #<procedure aa398b0 at guix/script…> …)
    829:9  2 (catch git-error #<procedure aa39810 at guix/scripts/p…> …)
    829:9  1 (catch system-error #<procedure aa39030 at guix/script…> …)
In unknown file:
           0 (raise #<condition &profile-not-found-error [profile: "…>)

ERROR: In procedure raise:
Wrong type (expecting exact integer): #<condition
&profile-not-found-error [profile:
"/var/guix/profiles/per-user/sdb/current-guix"] aa10550>

The relevant code from pull.scm is this:
(define (process-query opts profile)
  "Process any query on PROFILE specified by OPTS."
  (match (assoc-ref opts 'query)
    (('list-generations pattern)
     (define (list-generations profile numbers)
       (match numbers
         ((first rest ...)
          (display-profile-content profile first)
          (let loop ((numbers numbers))
            (match numbers
              ((first second rest ...)
               (display-profile-content-diff profile
                                             first second)
               (loop (cons second rest)))
              ((_) #t)
              (()  #t))))))

     (leave-on-EPIPE
      (cond ((not (file-exists? profile))         ; XXX: race condition 
                                                                        
                                       
             (raise (condition (&profile-not-found-error
                                (profile profile)))))
            ((string-null? pattern)
             (list-generations profile (profile-generations profile)))
            ((matching-generations pattern profile)
             =>
             (match-lambda
               (()
                (exit 1))
               ((numbers ...)
                (list-generations profile numbers)))))))))

-- 
Cheers 
Swedebugia




This bug report was last modified 6 years and 177 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.