contrib/asdf fails parallel build since 1.2.3

Bug #1434768 reported by Nikhil Benesch
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Fix Released
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

Revision history for this message
Nikhil Benesch (nikhil-benesch) wrote :
Revision history for this message
Christophe Rhodes (csr21-cantab) wrote : Re: [Bug 1434768] Re: contrib/asdf fails parallel build since 1.2.3

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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.