contrib/asdf fails parallel build since 1.2.3

Bug #1434768 reported by Nikhil Benesch on 2015-03-21
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Undecided
Unassigned

Bug Description

Homebrew is currently stuck at v1.2.2 of SBCL [0] because 1.2.3 broke parallel builds. I've tracked the cause to the commit that upgrades to asdf 3.1.3 [1], which introduces a race condition in contrib/asdf/Makefile:

  attempt to load an empty FASL file:
  "/private/tmp/sbcl20150320-3413-t6vwf2/sbcl-1.2.9/obj/sbcl-home/contrib/uiop.fasl"

  ...snip...

  WARNING! Some of the contrib modules did not build successfully or pass
  their self-tests. Failed contribs:"
    asdf

As best as I can tell, the $(ASDF_FASL) task has an undeclared dependency on the $(UIOP_FASL) task. Make doesn't know about this, runs the tasks in parallel, and the test fails.

To reproduce:

    1. Find a box with multiple cores. (Probably.)
    2. Instruct Make to parallelize the build: MAKEFLAGS=-j2
    3. Compile like normal.

The race condition occurs reliably for me on a 4-core MacBook Pro with -j4 and SBCL 1.2.9.

NOTE: This parallelization is unrelated to #1010646 [2].

[0]: https://github.com/Homebrew/homebrew/pull/36440
[1]: https://github.com/sbcl/sbcl/commit/d7598560e4d105b4f9b37a9b04280048e25d4b92#diff-9ca4e25023166b9ddd7646c3883d0020R2
[2]: https://bugs.launchpad.net/sbcl/+bug/1010646

Nikhil Benesch (nikhil-benesch) wrote :

Thank you; I've merged this patch as commit
92fb90203c40602cd239cc85774a9dcab2f5a78f.

Christophe

Changed in sbcl:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers