GNU bug report logs - #19630
error message when referencing non-existing output not helpful

Previous Next

Package: guix;

Reported by: Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de>

Date: Mon, 19 Jan 2015 17:07:02 UTC

Severity: normal

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 19630 in the body.
You can then email your comments to 19630 AT debbugs.gnu.org in the normal way.

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#19630; Package guix. (Mon, 19 Jan 2015 17:07:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 19 Jan 2015 17:07:02 GMT) Full text and rfc822 format available.

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

From: Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de>
To: <bug-guix <at> gnu.org>
Subject: error message when referencing non-existing output not helpful
Date: Mon, 19 Jan 2015 12:51:20 +0100
When a package recipe specifies as input a non-existing output of a
package, the build process fails with a rather unhelpful late error
message.

The following is the output of building a package that depends on the
"bin" output of libtool, which has since been removed.

~~~~~
[rwurmus <at> workstation:~/code/guix] (599) $ ./pre-inst-env guix build ijs
Backtrace:
In ice-9/boot-9.scm:
 157: 18 [catch #t #<catch-closure 10e4d60> ...]
In unknown file:
   ?: 17 [apply-smob/1 #<catch-closure 10e4d60>]
In ice-9/boot-9.scm:
  63: 16 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 15 [eval # #]
In ice-9/boot-9.scm:
2401: 14 [save-module-excursion #<procedure 1100940 at ice-9/boot-9.scm:4045:3 ()>]
4050: 13 [#<procedure 1100940 at ice-9/boot-9.scm:4045:3 ()>]
1724: 12 [%start-stack load-stack ...]
1729: 11 [#<procedure 1118ea0 ()>]
In unknown file:
   ?: 10 [primitive-load "/home/rwurmus/code/guix/scripts/guix"]
In guix/ui.scm:
 787: 9 [run-guix-command build "ijs"]
In ice-9/boot-9.scm:
 157: 8 [catch srfi-34 #<procedure 1872840 at guix/ui.scm:218:2 ()> ...]
 157: 7 [catch system-error ...]
In guix/scripts/build.scm:
 436: 6 [#<procedure 1872860 at guix/scripts/build.scm:422:2 ()>]
In guix/ui.scm:
 307: 5 [show-what-to-build #<build-daemon 256.14 17d7200> (#) #:dry-run? ...]
In guix/derivations.scm:
 226: 4 [substitution-oracle #<build-daemon 256.14 17d7200> (#)]
In guix/store.scm:
 705: 3 [substitutable-paths # #]
In srfi/srfi-1.scm:
 619: 2 [for-each #<procedure 383ed80 at guix/serialization.scm:118:12 (t-3793)> #]
In guix/serialization.scm:
  85: 1 [write-string #f #<input-output: socket 10>]
In unknown file:
   ?: 0 [string->utf8 #f]

ERROR: In procedure string->utf8:
ERROR: In procedure string->utf8: Wrong type argument in position 1 (expecting string): #f
~~~~~

The error message is triggered by an unexpected #f in a long list of
paths.  It would be more helpful if an earlier error was produced that
indicates that the cause is a non-existing package output.




Reply sent to ludo <at> gnu.org (Ludovic Courtès):
You have taken responsibility. (Sat, 24 Jan 2015 22:02:02 GMT) Full text and rfc822 format available.

Notification sent to Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de>:
bug acknowledged by developer. (Sat, 24 Jan 2015 22:02:03 GMT) Full text and rfc822 format available.

Message #10 received at 19630-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Ricardo Wurmus <ricardo.wurmus <at> mdc-berlin.de>
Cc: 19630-done <at> debbugs.gnu.org
Subject: Re: bug#19630: error message when referencing non-existing output not
 helpful
Date: Sat, 24 Jan 2015 23:01:07 +0100
Commit f304c9c fixes that.  Now the result is something like this:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build abiword -n
guix build: error: reference to invalid output 'binfds' of derivation '/gnu/store/7lxd5yri8s4vkailk1jg5bxiqrshblj1-glib-2.42.1.drv'
--8<---------------cut here---------------end--------------->8---

It doesn’t say the context in which that invalid reference occurred, but
it’s already much better.

Note that at the lowest level it’s possible to create a derivation that
refers to a non-existent output of some other derivation.  The problem
will go unnoticed until the ‘build-derivations’ RPC is called.

Thanks,
Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 22 Feb 2015 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 9 years and 37 days ago.

Previous Next


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