* 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 external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.