RFR: JDK-8154326: bash >(...) construct causes race conditions
tim.bell at oracle.com
Tue Apr 19 14:28:37 UTC 2016
> 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/
More information about the build-dev