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

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Mark H Weaver
Owner
unassigned
Submitted by
Mark H Weaver
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 build
after saving a copy of the failed build log. See below for the tail of
the 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.go
In 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.go
n 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 environment
variable GUILE_WARN_DEPRECATED to "detailed" and rerun the
program to get more information. Set it to "no" to suppress
this message.
make[2]: *** [Makefile:5574: make-go] Error 1
make[2]: Leaving directory '/tmp/guix-build-guix-0.16.0-8.7ba2b27.drv-0/source'
make[1]: *** [Makefile:4655: all-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-guix-0.16.0-8.7ba2b27.drv-0/source'
make: *** [Makefile:3271: all] Error 2
Backtrace:
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 also
failed, 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:


which I think is the same as the “info-dir bug”:


I had come to believe Guile 2.2.4 addressed these, but lately people
have been reporting similar issues quite frequently, so I guess we have
a 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 would
trigger 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 from
today), 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 the
8-core build machines behind berlin:


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
?