* Assertion failure while building libtool
@ 2013-06-07 17:25 Mark H Weaver
2013-06-07 20:49 ` Ludovic Courtès
0 siblings, 1 reply; 7+ messages in thread
From: Mark H Weaver @ 2013-06-07 17:25 UTC (permalink / raw)
To: bug-guix
I did a clean rebuild of guix from git master (make clean; ./bootstrap;
make), and then attempted to upgrade all packages. After several
successful builds, the daemon printed this:
guix-daemon: nix/libstore/local-store.cc:526: void nix::canonicalisePathMetaData_(const Path&, uid_t, nix::InodesSeen&): Assertion `!((((st.st_mode)) & 0170000) == (0040000))' failed.
Here are the last several lines of output from the console where I ran
the upgrade:
--8<---------------cut here---------------start------------->8---
test -z "/nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2/share/man/man1" || /nix/store/2p8di9qlp6l5z7bq5qgnpx99vl8rim2a-coreutils-8.21/bin/mkdir -p "/nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2/share/man/man1"
/nix/store/2p8di9qlp6l5z7bq5qgnpx99vl8rim2a-coreutils-8.21/bin/install -c -m 644 ./doc/libtool.1 ./doc/libtoolize.1 '/nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2/share/man/man1'
make[3]: Leaving directory `/tmp/nix-build-libtool-2.4.2.drv-0/libtool-2.4.2'
make[2]: Leaving directory `/tmp/nix-build-libtool-2.4.2.drv-0/libtool-2.4.2'
make[1]: Leaving directory `/tmp/nix-build-libtool-2.4.2.drv-0/libtool-2.4.2'
phase `install' succeeded after 1 seconds
starting phase `patch-shebangs'
phase `patch-shebangs' succeeded after 0 seconds
starting phase `strip'
stripping binaries in "/nix/store/g1wl3hkiykindg7xjl05r57vim6jsyki-libtool-2.4.2-bin/bin" with flags ("--strip-debug")
strip:/nix/store/g1wl3hkiykindg7xjl05r57vim6jsyki-libtool-2.4.2-bin/bin/libtool: File format not recognized
strip:/nix/store/g1wl3hkiykindg7xjl05r57vim6jsyki-libtool-2.4.2-bin/bin/libtoolize: File format not recognized
stripping binaries in "/nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2/lib" with flags ("--strip-debug")
strip:/nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2/lib/libltdl.la: File format not recognized
phase `strip' succeeded after 0 seconds
Backtrace:
In ice-9/boot-9.scm:
157: 13 [catch #t #<catch-closure 1cbb4c0> ...]
In unknown file:
?: 12 [apply-smob/1 #<catch-closure 1cbb4c0>]
In ice-9/boot-9.scm:
63: 11 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
432: 10 [eval # #]
In ice-9/boot-9.scm:
2320: 9 [save-module-excursion #<procedure 1cebcc0 at ice-9/boot-9.scm:3961:3 ()>]
3966: 8 [#<procedure 1cebcc0 at ice-9/boot-9.scm:3961:3 ()>]
In unknown file:
?: 7 [load-compiled/vm "/home/mhw/.cache/guile/ccache/2.0-LE-8-2.0/home/mhw/guix/scripts/guix.go"]
In guix/ui.scm:
462: 6 [run-guix-command package "--upgrade"]
In ice-9/boot-9.scm:
157: 5 [catch srfi-34 #<procedure 2821d20 at guix/ui.scm:148:2 ()> ...]
In guix/scripts/package.scm:
929: 4 [#<procedure 2825f30 at guix/scripts/package.scm:915:8 ()>]
824: 3 [process-actions (# # # #)]
In guix/store.scm:
474: 2 [build-derivations # #]
325: 1 [process-stderr #]
In guix/serialization.scm:
49: 0 [read-int #<input-output: socket 5>]
guix/serialization.scm:49:4: In procedure read-int:
guix/serialization.scm:49:4: In procedure bv-u32-ref: Wrong type argument in position 1 (expecting bytevector): #<eof>
--8<---------------cut here---------------end--------------->8---
This is current git master (v0.2-82-gb2e3dd9) running on Debian Wheezy
with Guile 2.0.9. I ran the daemon with the command:
./pre-inst-env guix-daemon --no-substitutes --build-users-group=guix-builder
The upgrade command was: ./pre-inst-env guix package --upgrade
Any idea what went wrong here?
Mark
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Assertion failure while building libtool
2013-06-07 17:25 Assertion failure while building libtool Mark H Weaver
@ 2013-06-07 20:49 ` Ludovic Courtès
2013-06-08 2:45 ` Mark H Weaver
0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Courtès @ 2013-06-07 20:49 UTC (permalink / raw)
To: Mark H Weaver; +Cc: bug-guix
Mark H Weaver <mhw@netris.org> skribis:
> I did a clean rebuild of guix from git master (make clean; ./bootstrap;
> make), and then attempted to upgrade all packages. After several
> successful builds, the daemon printed this:
>
> guix-daemon: nix/libstore/local-store.cc:526: void nix::canonicalisePathMetaData_(const Path&, uid_t, nix::InodesSeen&): Assertion `!((((st.st_mode)) & 0170000) == (0040000))' failed.
Yes, this is a daemon bug pending a fix:
<https://github.com/NixOS/nix/issues/122>.
In the meantime, you can hopefully work around it by deleting the
already-present output–i.e., by running either:
guix gc --delete /nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2
or
guix gc --delete /nix/store/g1wl3hkiykindg7xjl05r57vim6jsyki-libtool-2.4.2-bin
HTH,
Ludo’.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Assertion failure while building libtool
2013-06-07 20:49 ` Ludovic Courtès
@ 2013-06-08 2:45 ` Mark H Weaver
2013-06-08 14:35 ` Ludovic Courtès
0 siblings, 1 reply; 7+ messages in thread
From: Mark H Weaver @ 2013-06-08 2:45 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: bug-guix
Hi Ludovic,
ludo@gnu.org (Ludovic Courtès) writes:
> Mark H Weaver <mhw@netris.org> skribis:
>
>> I did a clean rebuild of guix from git master (make clean; ./bootstrap;
>> make), and then attempted to upgrade all packages. After several
>> successful builds, the daemon printed this:
>>
>> guix-daemon: nix/libstore/local-store.cc:526: void
>> nix::canonicalisePathMetaData_(const Path&, uid_t,
>> nix::InodesSeen&): Assertion `!((((st.st_mode)) & 0170000) ==
>> (0040000))' failed.
>
> Yes, this is a daemon bug pending a fix:
> <https://github.com/NixOS/nix/issues/122>.
>
> In the meantime, you can hopefully work around it by deleting the
> already-present output–i.e., by running either:
>
> guix gc --delete /nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2
This command fails because there are still references:
--8<---------------cut here---------------start------------->8---
mhw@tines:~/guix$ ./pre-inst-env guix gc --delete /nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2
finding garbage collector roots...
removing stale temporary roots file `/usr/local/var/nix/temproots/18019'
guix gc: error: build failed: cannot delete path `/nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2' since it is still alive
mhw@tines:~/guix$ ./pre-inst-env guix gc --references /nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2
/nix/store/gk8dpqzml7n6ah0nxi59hrpwjaqqml64-gcc-4.7.3
/nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2
/nix/store/ybdv89csf4sn7wbmgj9kfjjk1b0mhrlb-glibc-2.17
/nix/store/zch43a56qdchdw0xm3lwpr8ydg8ksx25-bash-4.2
--8<---------------cut here---------------end--------------->8---
> or
>
> guix gc --delete /nix/store/g1wl3hkiykindg7xjl05r57vim6jsyki-libtool-2.4.2-bin
This command succeeds, but does not solve the problem for me.
Any other suggestions?
Thanks,
Mark
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Assertion failure while building libtool
2013-06-08 2:45 ` Mark H Weaver
@ 2013-06-08 14:35 ` Ludovic Courtès
2013-06-08 18:04 ` Mark H Weaver
2013-06-15 13:20 ` Ludovic Courtès
0 siblings, 2 replies; 7+ messages in thread
From: Ludovic Courtès @ 2013-06-08 14:35 UTC (permalink / raw)
To: Mark H Weaver; +Cc: bug-guix
[-- Attachment #1: Type: text/plain, Size: 997 bytes --]
Hi Mark,
Mark H Weaver <mhw@netris.org> skribis:
> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Mark H Weaver <mhw@netris.org> skribis:
>>
>>> I did a clean rebuild of guix from git master (make clean; ./bootstrap;
>>> make), and then attempted to upgrade all packages. After several
>>> successful builds, the daemon printed this:
>>>
>>> guix-daemon: nix/libstore/local-store.cc:526: void
>>> nix::canonicalisePathMetaData_(const Path&, uid_t,
>>> nix::InodesSeen&): Assertion `!((((st.st_mode)) & 0170000) ==
>>> (0040000))' failed.
>>
>> Yes, this is a daemon bug pending a fix:
>> <https://github.com/NixOS/nix/issues/122>.
>>
>> In the meantime, you can hopefully work around it by deleting the
>> already-present output–i.e., by running either:
>>
>> guix gc --delete /nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2
>
> This command fails because there are still references:
OK. I believe this (untested) patch fixes the underlying problem:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 1033 bytes --]
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 3f595e3..37b839a 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -2288,8 +2288,15 @@ void DerivationGoal::computeClosure()
% path % i->second.hashAlgo % printHash16or32(h) % printHash16or32(h2));
}
- /* Get rid of all weird permissions. */
- canonicalisePathMetaData(path, buildUser.enabled() ? buildUser.getUID() : -1);
+ /* Get rid of all weird permissions. If `path' already existed (as
+ can happen with multiple-output derivations), it is already owned
+ by `root' and not by the build user. In that case, skip
+ canonicalisation altogether.
+ See <https://github.com/NixOS/nix/issues/122> for details. */
+ canonicalisePathMetaData(path,
+ (buildUser.enabled() && st.st_uid == buildUser.getUID())
+ ? buildUser.getUID()
+ : -1);
/* For this output path, find the references to other paths
contained in it. Compute the SHA-256 NAR hash at the same
[-- Attachment #3: Type: text/plain, Size: 131 bytes --]
Could you rebuild the daemon with that patch, relaunch the libtool
build, and check if it fixes the problem?
TIA,
Ludo’.
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: Assertion failure while building libtool
2013-06-08 14:35 ` Ludovic Courtès
@ 2013-06-08 18:04 ` Mark H Weaver
2013-06-08 22:57 ` Ludovic Courtès
2013-06-15 13:20 ` Ludovic Courtès
1 sibling, 1 reply; 7+ messages in thread
From: Mark H Weaver @ 2013-06-08 18:04 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: bug-guix
Hi Ludovic,
ludo@gnu.org (Ludovic Courtès) writes:
> Could you rebuild the daemon with that patch, relaunch the libtool
> build, and check if it fixes the problem?
Works for me! Thanks :)
Mark
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Assertion failure while building libtool
2013-06-08 18:04 ` Mark H Weaver
@ 2013-06-08 22:57 ` Ludovic Courtès
0 siblings, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2013-06-08 22:57 UTC (permalink / raw)
To: Mark H Weaver; +Cc: bug-guix
Mark H Weaver <mhw@netris.org> skribis:
> ludo@gnu.org (Ludovic Courtès) writes:
>> Could you rebuild the daemon with that patch, relaunch the libtool
>> build, and check if it fixes the problem?
>
> Works for me! Thanks :)
Great, thanks for testing! I’m proposing the patch upstream now.
Ludo’.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Assertion failure while building libtool
2013-06-08 14:35 ` Ludovic Courtès
2013-06-08 18:04 ` Mark H Weaver
@ 2013-06-15 13:20 ` Ludovic Courtès
1 sibling, 0 replies; 7+ messages in thread
From: Ludovic Courtès @ 2013-06-15 13:20 UTC (permalink / raw)
To: Mark H Weaver; +Cc: bug-guix
ludo@gnu.org (Ludovic Courtès) skribis:
> Hi Mark,
>
> Mark H Weaver <mhw@netris.org> skribis:
>
>> ludo@gnu.org (Ludovic Courtès) writes:
>>
>>> Mark H Weaver <mhw@netris.org> skribis:
>>>
>>>> I did a clean rebuild of guix from git master (make clean; ./bootstrap;
>>>> make), and then attempted to upgrade all packages. After several
>>>> successful builds, the daemon printed this:
>>>>
>>>> guix-daemon: nix/libstore/local-store.cc:526: void
>>>> nix::canonicalisePathMetaData_(const Path&, uid_t,
>>>> nix::InodesSeen&): Assertion `!((((st.st_mode)) & 0170000) ==
>>>> (0040000))' failed.
>>>
>>> Yes, this is a daemon bug pending a fix:
>>> <https://github.com/NixOS/nix/issues/122>.
>>>
>>> In the meantime, you can hopefully work around it by deleting the
>>> already-present output–i.e., by running either:
>>>
>>> guix gc --delete /nix/store/wbsypglflcy7fi08h4finffjy9mqzh12-libtool-2.4.2
>>
>> This command fails because there are still references:
>
> OK. I believe this (untested) patch fixes the underlying problem:
Commit 16357e8 updates the ‘nix-upstream’ submodule to the latest Nix,
which has a fix for this problem. Re-run ./bootstrap to get it.
Details at https://github.com/NixOS/nix/issues/122 .
Ludo’.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-06-15 13:25 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-07 17:25 Assertion failure while building libtool Mark H Weaver
2013-06-07 20:49 ` Ludovic Courtès
2013-06-08 2:45 ` Mark H Weaver
2013-06-08 14:35 ` Ludovic Courtès
2013-06-08 18:04 ` Mark H Weaver
2013-06-08 22:57 ` Ludovic Courtès
2013-06-15 13:20 ` Ludovic Courtès
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).