Guix 0.16.0-8 FTBFS: ">>= (bind) used outside of 'with-monad'"

OpenSubmitted by Mark H Weaver.
Details
2 participants
  • Ludovic Courtès
  • Mark H Weaver
Owner
unassigned
Severity
serious
Merged with
M
M
Mark H Weaver wrote on 17 Jan 2019 00:33
(address . bug-guix@gnu.org)
87won441p1.fsf@netris.org
In the most recent evaluation of 'master' on hydra.gnu.org (eval 110393,corresponding to git commit 5327e912a8a477e472da9ec03c99cdedcc04af75),the 'guix' package failed to build on x86_64, with the following error:
Toggle snippet (3 lines)guix/hg-download.scm:93:2: >>=: >>= (bind) used outside of 'with-monad' in form (>>= (package->derivation guile system) (lambda (t-2c116650a85e261-45a) (mlet* %store-monad () (let ((guile t-2c116650a85e261-45a)) (gexp->derivation (or name "hg-checkout") build #:system system #:local-build? #t #:hash-algo hash-algo #:hash hash #:recursive? #t #:guile-for-build guile)))))
I suspect that this error is non-deterministic, so I restarted the buildafter saving a copy of the failed build log. See below for the tail ofthe build log.
Mark
Toggle snippet (99 lines) LOAD gnu/tests/security-token.scm LOAD gnu/tests/ssh.scm LOAD gnu/tests/version-control.scm LOAD gnu/tests/virtualization.scm LOAD gnu/tests/web.scm LOAD guix/ssh.scm LOAD guix/scripts/copy.scm LOAD guix/store/ssh.scm LOAD guix/scripts/offload.scm LOAD guix/store/database.scm LOAD guix/store/deduplication.scm LOAD guix/config.scm LOAD guix/tests.scm LOAD guix/tests/http.scm GUILEC guix/base16.go GUILEC guix/base32.go GUILEC guix/base64.go GUILEC guix/ci.go GUILEC guix/cpio.go GUILEC guix/docker.go GUILEC guix/records.go GUILEC guix/pki.go GUILEC guix/progress.go GUILEC guix/combinators.go GUILEC guix/memoization.go GUILEC guix/utils.go GUILEC guix/sets.go GUILEC guix/modules.go GUILEC guix/download.go GUILEC guix/discovery.go GUILEC guix/git-download.go GUILEC guix/hg-download.go GUILEC guix/swh.go GUILEC guix/monads.go GUILEC guix/monad-repl.goIn system/base/compile.scm: 183:32 19 (compile-fold (#<procedure compile-tree-il (x e opts)>) …)In ice-9/boot-9.scm: 2312:4 18 (save-module-excursion #<procedure 15c77ec0 at language…>)In language/scheme/compile-tree-il.scm: 31:15 17 (_)In ice-9/psyntax.scm: 1234:22 16 (expand-top-sequence ((define* (hg-fetch ref # # …) …)) …)In ice-9/boot-9.scm: 222:17 15 (map1 (#<procedure 160f9720 at ice-9/psyntax.scm:1151:…>))In ice-9/psyntax.scm: 1409:12 14 (_) 2260:30 13 (_ _ _ _) 1882:14 12 (_ _ _ _ () () ()) 1945:21 11 (_ _ _) 1696:61 10 (parse _ _ _ _ _ _ _)In ice-9/boot-9.scm: 222:17 9 (map1 (((("placeholder" placeholder) ("l-2c…" . #) …) …)))In ice-9/psyntax.scm: 1612:33 8 (parse (((("placeholder" placeholder) ((#) . #) …) . #)) …) 1348:32 7 (syntax-type (#<syntax >>=> #<syntax (package->deri…> …) …) 1559:32 6 (expand-macro #<procedure 1493fa00 at ice-9/eval.scm:3…> …)I GUILEC guix/gexp.gon ice-9/boot-9.scm: 752:25 5 (dispatch-exception _ _ _) 751:25 4 (dispatch-exception 1 syntax-error (>>= ">>= (bind) …" …))In ice-9/eval.scm: 619:8 3 (_ #(#(#<directory (guix build compile) 5f58c0>) # (…)))In ice-9/boot-9.scm: GUILEC guix/profiles.go 829:9 2 (catch #t #<procedure 14ab9120 at ice-9/eval.scm:330:1…> …)In ice-9/eval.scm: 293:34 1 (_ #(#(#(#<directory (guix build compile) 5f58c0> …)) #))In unknown file: 0 (make-stack #t)ice-9/eval.scm:293:34: Syntax error:guix/hg-download.scm:93:2: >>=: >>= (bind) used outside of 'with-monad' in form (>>= (package->derivation guile system) (lambda (t-2c116650a85e261-45a) (mlet* %store-monad () (let ((guile t-2c116650a85e261-45a)) (gexp->derivation (or name "hg-checkout") build #:system system #:local-build? #t #:hash-algo hash-algo #:hash hash #:recursive? #t #:guile-for-build guile)))))random seed for tests: 1547587378
Some deprecated features have been used. Set the environmentvariable GUILE_WARN_DEPRECATED to "detailed" and rerun theprogram to get more information. Set it to "no" to suppressthis message.make[2]: *** [Makefile:5574: make-go] Error 1make[2]: Leaving directory '/tmp/guix-build-guix-0.16.0-8.7ba2b27.drv-0/source'make[1]: *** [Makefile:4655: all-recursive] Error 1make[1]: Leaving directory '/tmp/guix-build-guix-0.16.0-8.7ba2b27.drv-0/source'make: *** [Makefile:3271: all] Error 2Backtrace: 4 (primitive-load "/gnu/store/lz5zwvd999nw24qv0vnia608iaz…")In ice-9/eval.scm: 191:35 3 (_ _)In srfi/srfi-1.scm: 863:16 2 (every1 #<procedure 823420 at /gnu/store/gfprsx2m62cvq…> …)In /gnu/store/gfprsx2m62cvqbh7ysc9ay9slhijvmal-module-import/guix/build/gnu-build-system.scm: 799:28 1 (_ _)In /gnu/store/gfprsx2m62cvqbh7ysc9ay9slhijvmal-module-import/guix/build/utils.scm: 616:6 0 (invoke _ . _)
/gnu/store/gfprsx2m62cvqbh7ysc9ay9slhijvmal-module-import/guix/build/utils.scm:616:6: In procedure invoke:Throw to key `srfi-34' with args `(#<condition &invoke-error [program: "make" arguments: ("-j" "8") exit-status: 2 term-signal: #f stop-signal: #f] 5d3b80>)'.builder for `/gnu/store/gxb0dhg3zifxc9mjl8pmdra1w13nnk0p-guix-0.16.0-8.7ba2b27.drv' failed with exit code 1@ build-failed /gnu/store/gxb0dhg3zifxc9mjl8pmdra1w13nnk0p-guix-0.16.0-8.7ba2b27.drv - 1 builder for `/gnu/store/gxb0dhg3zifxc9mjl8pmdra1w13nnk0p-guix-0.16.0-8.7ba2b27.drv' failed with exit code 1
M
M
Mark H Weaver wrote on 17 Jan 2019 05:03
(address . 34112@debbugs.gnu.org)
871s5c3p6q.fsf@netris.org
Mark H Weaver <mhw@netris.org> writes:
Toggle quote (10 lines)> In the most recent evaluation of 'master' on hydra.gnu.org (eval 110393,> corresponding to git commit 5327e912a8a477e472da9ec03c99cdedcc04af75),> the 'guix' package failed to build on x86_64, with the following error:>> guix/hg-download.scm:93:2: >>=: >>= (bind) used outside of 'with-monad' in form (>>= (package->derivation guile system) (lambda (t-2c116650a85e261-45a) (mlet* %store-monad () (let ((guile t-2c116650a85e261-45a)) (gexp->derivation (or name "hg-checkout") build #:system system #:local-build? #t #:hash-algo hash-algo #:hash hash #:recursive? #t #:guile-for-build guile)))))>>> I suspect that this error is non-deterministic, so I restarted the build> after saving a copy of the failed build log.
The error is indeed non-deterministic. However, the second attempt alsofailed, due to a failed test. https://hydra.gnu.org/build/3338940
FAIL: tests/processes =====================
random seed for tests: 1547688217 substitute: warning: authentication and authorization of substitutes disabled! substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable building path(s) `/tmp/guix-tests/store/9zba58k4br08dvfy9f1djwy49gh03d8z-foo' test-name: not a client location: /tmp/guix-build-guix-0.16.0-8.7ba2b27.drv-0/source/tests/processes.scm:37 source: + (test-assert + "not a client" + (not (find (lambda (session) + (= (getpid) + (process-id (daemon-session-client session)))) + (daemon-sessions)))) actual-value: #f actual-error: + (wrong-type-arg + "struct_vtable" + "Wrong type argument in position ~A (expecting ~A): ~S" + (1 "struct" #f) + (#f)) result: FAIL
I'll restart it again, in hope that the third attempt will succeed.
Mark
L
L
Ludovic Courtès wrote on 17 Jan 2019 13:20
(name . Mark H Weaver)(address . mhw@netris.org)(address . 34112@debbugs.gnu.org)
878szjwk4t.fsf@gnu.org
Hi Mark,
Mark H Weaver <mhw@netris.org> skribis:
Toggle quote (6 lines)> In the most recent evaluation of 'master' on hydra.gnu.org (eval 110393,> corresponding to git commit 5327e912a8a477e472da9ec03c99cdedcc04af75),> the 'guix' package failed to build on x86_64, with the following error:>> guix/hg-download.scm:93:2: >>=: >>= (bind) used outside of 'with-monad' in form (>>= (package->derivation guile system) (lambda (t-2c116650a85e261-45a) (mlet* %store-monad () (let ((guile t-2c116650a85e261-45a)) (gexp->derivation (or name "hg-checkout") build #:system system #:local-build? #t #:hash-algo hash-algo #:hash hash #:recursive? #t #:guile-for-build guile)))))
This is the dreaded syntax parameter bug:
https://issues.guix.info/issue/27476
which I think is the same as the “info-dir bug”:
https://issues.guix.info/issue/28144
I had come to believe Guile 2.2.4 addressed these, but lately peoplehave been reporting similar issues quite frequently, so I guess we havea problem.
Thoughts?
Ludo’.
L
L
Ludovic Courtès wrote on 22 Jan 2019 17:52
control message for bug #34112
(address . control@debbugs.gnu.org)
87d0oomy7v.fsf@gnu.org
severity 34112 important
L
L
Ludovic Courtès wrote on 22 Jan 2019 21:58
(address . control@debbugs.gnu.org)
87imygl88w.fsf@gnu.org
severity 34112 serious
L
L
Ludovic Courtès wrote on 22 Jan 2019 21:58
control message for bug #27476
(address . control@debbugs.gnu.org)
87h8e0l88o.fsf@gnu.org
merge 27476 34112
L
L
Ludovic Courtès wrote on 22 Jan 2019 22:10
Re: bug#34112: Guix 0.16.0-8 FTBFS: ">>= (bind) used outside of 'with-monad'"
(name . Mark H Weaver)(address . mhw@netris.org)(address . 34112@debbugs.gnu.org)
87a7jsl7pc.fsf@gnu.org
Hi Mark,
Ludovic Courtès <ludo@gnu.org> skribis:
Toggle quote (12 lines)> Mark H Weaver <mhw@netris.org> skribis:>>> In the most recent evaluation of 'master' on hydra.gnu.org (eval 110393,>> corresponding to git commit 5327e912a8a477e472da9ec03c99cdedcc04af75),>> the 'guix' package failed to build on x86_64, with the following error:>>>> guix/hg-download.scm:93:2: >>=: >>= (bind) used outside of 'with-monad' in form (>>= (package->derivation guile system) (lambda (t-2c116650a85e261-45a) (mlet* %store-monad () (let ((guile t-2c116650a85e261-45a)) (gexp->derivation (or name "hg-checkout") build #:system system #:local-build? #t #:hash-algo hash-algo #:hash hash #:recursive? #t #:guile-for-build guile)))))>> This is the dreaded syntax parameter bug:>> https://issues.guix.info/issue/27476
Today I noticed that building guix-core.drv on a 24-core machine wouldtrigger the bug roughly 70% of the time, with backtraces like this:
Toggle snippet (39 lines)building /gnu/store/rxx273f09jcxk72rjgl990k8191di0jw-guix-core.drv...compiling... 15.4% of 39 filesIn ice-9/psyntax.scm: 2338:44 19 (expand-let _ _ _ ((line . 1537) (column . 0) (filename . "guix/store.scm")) (hygiene guix store) #<procedure build-let (src ids vars val-exps body-exp)> _ _ ((#<syntax match-one> # ?)))compiling... 17.9% of 39 files 1679:45 18 (parse _ _ _ _ _ _ _)In ice-9/boot-9.scm: 222:17 17 (map1 (((("placeholder" placeholder) ("l-10a3c941d34314a1-4b93" lexical . failure-10a3c941d34314a1-4b94) ("placeholder" placeholder) ("placeholder" placeholder) ("l-10a3c9?" . #) ?) ?)))In ice-9/psyntax.scm: 1409:12 16 (_ _ _ #<syntax (#<syntax failure>)>) 2338:44 15 (expand-let _ _ _ ((line . 1537) (column . 0) (filename . "guix/store.scm")) (hygiene guix store) #<procedure build-let (src ids vars val-exps body-exp)> _ _ ((#<syntax match-one> # ?))) 1679:45 14 (parse _ _ _ _ _ _ _)In ice-9/boot-9.scm: 222:17 13 (map1 (((("l-10a3c941d34314a1-4b9e" macro . #<procedure 13ad6c0 at ice-9/eval.scm:333:13 (a)>) ("placeholder" placeholder) ("l-10a3c941d34314a1-4b99" lexical . #) ("l-10?" . #) ?) . #)))In ice-9/psyntax.scm: 2338:44 12 (expand-let _ _ _ ((line . 1537) (column . 0) (filename . "guix/store.scm")) (hygiene guix store) #<procedure build-let (src ids vars val-exps body-exp)> _ _ ((#<syntax match-one> # ?))) 1679:45 11 (parse _ _ _ _ _ _ _)In ice-9/boot-9.scm: 222:17 10 (map1 (((("l-10a3c941d34314a1-4bba" macro . #<procedure c1b240 at ice-9/eval.scm:333:13 (a)>) ("placeholder" placeholder) ("l-10a3c941d34314a1-4bb6" lexical . #) ("l-10a?" . #) ?) . #)))In ice-9/psyntax.scm: 2338:44 9 (expand-let _ _ _ ((line . 1537) (column . 0) (filename . "guix/store.scm")) (hygiene guix store) #<procedure build-let (src ids vars val-exps body-exp)> _ _ ((#<syntax match-drop?> ?))) 1612:33 8 (parse (((("placeholder" placeholder) ("l-10a3c941d34314a1-4bd2" lexical . tail-10a3c941d34314a1-4bd3) ("l-10a3c941d34314a1-4bba" macro . #<procedure c1b240 at ice-9/eval.s?>) ?) . #)) ?) 1348:32 7 (syntax-type (#<syntax >>=> (#<syntax mproc> #<syntax head> #<syntax result>) (#<syntax lambda> (#<syntax result>) (#<syntax loop> #<syntax tail> #<syntax result>))) (("placeho?" ?) ?) ?) 1559:32 6 (expand-macro #<procedure 136bbc0 at ice-9/eval.scm:333:13 (a)> _ _ _ _ _ _)In ice-9/boot-9.scm: 752:25 5 (dispatch-exception _ _ _) 751:25 4 (dispatch-exception 1 syntax-error (>>= ">>= (bind) used outside of 'with-monad'" ((line . 1537) (column . 0) (filename . "guix/store.scm")) (>>= (mproc head result) (lambda (#) ?)) #))In guix/build/compile.scm: 123:6 3 (_ _ . _)In ice-9/boot-9.scm: 829:9 2 (catch #t #<procedure c3a4e0 at guix/build/compile.scm:123:6 ()> #<procedure 7fffefd02980 at guix/build/compile.scm:123:6 args> _)In guix/build/compile.scm: 126:21 1 (_)In unknown file: 0 (make-stack #t)guix/build/compile.scm:126:21: Syntax error:guix/store.scm:1538:0: >>=: >>= (bind) used outside of 'with-monad' in form (>>= (mproc head result) (lambda (result) (loop tail result)))builder for `/gnu/store/rxx273f09jcxk72rjgl990k8191di0jw-guix-core.drv' failed with exit code 1
This is as of d1dfcc7c1b38d816dddc2868917ba490db7e7c3b (a commit fromtoday), where Guile 2.2.4 is used to build modules.
The bug doesn’t seem to be triggered on my 4-core laptop nor on the8-core build machines behind berlin:
https://ci.guix.info/jobset/guix-modular-master
Ludo’.
L
L
Ludovic Courtès wrote on 6 Feb 2019 14:20
control message for bug #27476
(address . control@debbugs.gnu.org)
875ztxawag.fsf@gnu.org
merge 27476 34319
L
L
Ludovic Courtès wrote on 6 Feb 2019 21:57
(address . control@debbugs.gnu.org)
87h8dg8wjq.fsf@gnu.org
merge 27476 28144
L
L
Ludovic Courtès wrote on 9 Feb 2019 23:11
(address . control@debbugs.gnu.org)
87sgwwpq85.fsf@gnu.org
reassign 27476 guile
?