[perl #59680] Build error: tools/build/ops2pm.pl: Could not mkdir /home/moritz/src/parrot/lib/Parrot/OpLib: File exists!
Mark Glines
mark at glines.org
Tue Nov 25 19:30:33 UTC 2008
Will Coleda wrote:
> On Tue, Nov 25, 2008 at 2:18 PM, Mark Glines via RT
> <parrotbug-followup at parrotcode.org> wrote:
>> On Sat Oct 18 12:13:51 2008, chromatic at wgz.org wrote:
>>> There's a race condition, if that directory doesn't exist and multiple
>>> processes execute that code simultaneously. Fortunately,
>>> Parrot::Ops2pm::print_module() creates that directly when it writes
>>> Parrot::OpLib::core -- the only file in that directory.
>>>
>>> Fixed in r32016.
>> Hi,
>>
>> I'm still seeing this race occur, about once every hundred builds.
>> r33196 contains a simple workaround (if mkpath failed, but the directory
>> now exists, someone else created it, so silently continue).
>>
>> Mark
>
> Can we avoid this issue by just shipping an empty svn directory?
That's one possibility, maybe with a ".keep" file or whatever to keep
git happy. Another solution I considered is to make the ops rules in
the Makefile depend on some "make-the-directory" rule, to keep the
ordering straight.
However, r33196 seemed like the simplest possible solution, and it won't
have any effect at all when the race condition didn't occur (which seems
like about 99% of the time), so that's the one I checked in. Feel free
to revert it if a different solution is preferred.
Mark
More information about the parrot-dev
mailing list