GNU bug report logs - #27476
Multi-threaded compilation of 'syntax-parameterize' forms crashes

Previous Next

Package: guile;

Reported by: Leo Famulari <leo <at> famulari.name>

Date: Sat, 24 Jun 2017 16:33:01 UTC

Severity: serious

Tags: unreproducible

Merged with 27652, 28144, 31294, 31367, 31740, 32385, 34112, 34319

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

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Mark H Weaver <mhw <at> netris.org>
Subject: bug#34112: closed (Re: bug#27476: libguile/memoize.c is not
 thread safe, so syntax parameter expansion is not thread-safe)
Date: Thu, 17 Dec 2020 15:13:03 +0000
[Message part 1 (text/plain, inline)]
Your bug report

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

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 34112 <at> debbugs.gnu.org.

-- 
27476: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=27476
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: Andy Wingo <wingo <at> igalia.com>
Cc: 27476-done <at> debbugs.gnu.org
Subject: Re: bug#27476: libguile/memoize.c is not thread safe, so syntax
 parameter expansion is not thread-safe
Date: Thu, 17 Dec 2020 16:12:17 +0100
Hi!

For the record, this was fixed in
61a8c9300daeb730fe5094f889bf13241942be84, which made it into 2.9/3.0,
and 2dccec9f553776656d9378e2315ad32d2e55286b, which made it into 2.2.5.

Closing!  :-)

Ludo’.

[Message part 3 (message/rfc822, inline)]
From: Mark H Weaver <mhw <at> netris.org>
To: bug-guix <at> gnu.org
Subject: Guix 0.16.0-8 FTBFS: ">>= (bind) used outside of 'with-monad'"
Date: Wed, 16 Jan 2019 18:33:35 -0500
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:

--8<---------------cut here---------------start------------->8---
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)))))
--8<---------------cut here---------------end--------------->8---

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

--8<---------------cut here---------------start------------->8---
  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
--8<---------------cut here---------------end--------------->8---



This bug report was last modified 4 years and 152 days ago.

Previous Next


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