RFR: race with nested repos in hgforest.sh

Chris Hegarty chris.hegarty at oracle.com
Tue Feb 5 14:07:36 UTC 2013


On 02/05/2013 06:21 AM, David Holmes wrote:
> Chris,
>
> When these failures occur does the failure get reflected in an error
> exit code?

Not currently, good point.

> I'm seeing hudson builds merilly buildinh OpenJDK instead of Oracle JDK
> because the closed repos were skipped due to this bug :(

This is what I am seeing too, and the reason I proposed a patch to 
resolve it.

Updated webrev;
   http://cr.openjdk.java.net/~chegar/hgforest_nestedRepos/webrev/

1) now checks, and returns, appropriate error code, so that higher
    level scripts can determine if it completed successfully
2) Added diagnostic error message to help identify potential future
    problems if a nested repo is blocked for too long

-Chris.

>
> David
>
> On 2/02/2013 12:40 AM, Chris Hegarty wrote:
>> [ to build-dev and core-libs-dev, expect reviewer from either, but will
>> integrate through jdk8/tl ]
>>
>> This issue is mainly of interest to Oracle engineers, but it effects the
>> public hgforest script.
>>
>> When hgforest.sh is run with an addition argument to specify a closed
>> server, there is a problem/race between the creation of the directories
>> to hold nested repositories and the clone itself. These directories need
>> to be created before the clone command is executed, otherwise it will
>> fail, as below.
>>
>> The trivial fix is to back off these nested repos until their containing
>> directory exists.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~chegar/hgforest_nestedRepos/webrev/
>>
>> sh ./get_source.sh http://xxx.yyy.oracle.com | & tee clone.log
>> # Repositories: corba jaxp jaxws langtools jdk hotspot jdk/src/closed
>> jdk/make/closed jdk/test/closed hotspot/make/closed hotspot/src/closed
>> hotspot/test/closed deploy install sponsors pubs
>>
>> Waiting 5 secs before spawning next background command.
>> Waiting 5 secs before spawning next background command.
>> Waiting 5 secs before spawning next background command.
>> jdk/src/closed: /java/devtools/sparc/mercurial/0.9.5/bin/python -u
>> /java/devtools/sparc/mercurial/latest/bin/hg clone
>> http://xxx.yyy.oracle.com/jdk8/tl/jdk/src/closed jdk/src/closed
>> jdk/src/closed: abort: No such file or directory: jdk/src/closed
>> jdk/make/closed: /java/devtools/sparc/mercurial/0.9.5/bin/python -u
>> /java/devtools/sparc/mercurial/latest/bin/hg clone
>> http://xxx.yyy.oracle.com/jdk8/tl/jdk/make/closed jdk/make/closed
>> jdk/make/closed: abort: No such file or directory: jdk/make/closed
>> Waiting 5 secs before spawning next background command.
>> ....
>>
>>
>> -Chris.



More information about the core-libs-dev mailing list