RFR: JDK-8154326: bash >(...) construct causes race conditions

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Tue Apr 19 20:29:48 UTC 2016


Looks good to me. 

/Magnus

> 19 apr. 2016 kl. 14:32 skrev Erik Joelsson <erik.joelsson at oracle.com>:
> 
> Hello,
> 
> After switching to the new hotspot build, we have seen some sporadic build errors related to the generation of dtrace JvmOffsets.h file on Solaris. The errors look like a compile target that depends on the header file fails because the header file is either empty or incomplete. I have managed to reproduce this by running this particular part of the build in a loop within 5 minutes.
> 
> The header file generation uses the rather new ExecuteWithLog macro, which uses the also rather new ">(tee logfile)" construct to save output to a log file while still echoing both stderr and stdout separately to the console. It seems however, that when using this construct, bash spawns background processes which may not be done when the main process is done.
> 
> I have noted a similar effect when switching to this construct for the main makefile build.log. The last line of make output would be echoed to the console after my prompt returned.
> 
> To solve this, I added "&& wait" in each location where the >(...) trick is used. I have then rerun the loop over night and could no longer reproduce the problem. I believe this to be the proper solution.
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8154326
> Webrev: http://cr.openjdk.java.net/~erikj/8154326/webrev.01/
> 
> /Erik




More information about the build-dev mailing list