#12118: Parallel build of libgpg_error is broken
------------------------+---------------------------------------------------
Reporter: justin | Owner: GeorgSWeber
Type: defect | Status: needs_review
Priority: major | Milestone: sage-4.8
Component: packages | Keywords:
Work_issues: | Upstream: N/A
Reviewer: | Author: Justin Walker
Merged: | Dependencies:
------------------------+---------------------------------------------------
Changes (by newvalueoldvalue):
* component: build => packages
* author: justin => Justin Walker
Old description:
> Beginning with the first 4.8 alpha, the build will fail if the build
> system is sufficiently fast, and perhaps, with sufficiently many cores
> available.
>
> The attached log file (from a 4.8.a3 build) shows that the spkg
> libgpg_error-1.6.p3 blows up because it tries to make a directory that
> already exists. Georg Weber (gsw') seems to have an explanation: while
> the Makefile does check to see that the file exists, if the build is
> sufficiently parallel, two checks can occur at the same time, see no
> directory, and then both try to make the directory. Only one can
> succeed.
>
> His comment on the list that "hyperthreading" may be the problem, I
> think, is not the case. For me, the build fails on a dual 6-core Xeon
> Mac Pro for "-j24", "-h12", and "-j8". It succeeds with "-j4".
>
> It appears that the directories are made in a shell file, rather than a
> Makefile. If so, the usual "-mkdir" Makefile trick won't work. However,
> at least on Mac OS X, using "mkdir -p" will ignore failures because the
> directory exists.
>
> Is this portable across all the systems we support? The man page implies
> that it is.
New description:
Beginning with the first 4.8 alpha, the build will fail if the build
system is sufficiently fast, and perhaps, with sufficiently many cores
available.
The attached log file (from a 4.8.a3 build) shows that the spkg
libgpg_error-1.6.p3 blows up because it tries to make a directory that
already exists. Georg Weber (gsw') seems to have an explanation: while
the Makefile does check to see that the file exists, if the build is
sufficiently parallel, two checks can occur at the same time, see no
directory, and then both try to make the directory. Only one can succeed.
His comment on the list that "hyperthreading" may be the problem, I think,
is not the case. For me, the build fails on a dual 6-core Xeon Mac Pro
for "-j24", "-h12", and "-j8". It succeeds with "-j4".
I found an undecorated (non-macro) mkdir's in src/Makefile. I added a
leading "-" to these, and the build succeeded (as did a subsequent
"ptestlong").
--
Comment:
This should be reported upstream.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12118#comment:4>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.