RFR: 8337283: configure.log is truncated when build dir is on different filesystem

Magnus Ihse Bursie ihse at openjdk.org
Mon Aug 5 12:06:31 UTC 2024


On Fri, 26 Jul 2024 16:21:33 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

> I noticed that `build/$confname/configure.log` was truncated on some of my build nodes. Turns out, we are moving configure.log from tree root to that place a bit prematurely.
> 
> We move `configure.log` here:
> https://github.com/openjdk/jdk/blob/4f194f10a1481cdc9df4e6338f6cabd07a34c84c/make/autoconf/basic.m4#L594-L618
> 
> ...and that is called here:
> https://github.com/openjdk/jdk/blob/4bcb8f04ed3623da7c84dda28017f473cbc97e53/make/autoconf/configure.ac#L314-L321
> 
> Or, before we print configuration summary.
> 
> Now, this works most of the time by accident: when root dir and build dir are on the same filesystem, the file move does not interfere with inodes/FDs, and we are still able to write to the same file _after_ we moved. But if build dir is on _another_ filesystem, then we miss writing the configuration summary when file moves away.
> 
> Apparently, my systems fall into that trap, since build dir is on RAM disk.

Thanks for fixing. The autoconf workarounds are really quirky, and have evolved slowly over time. I'm not even sure if the move was originally inserted too early, or the additional output has been added afterwards.

-------------

Marked as reviewed by ihse (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/20356#pullrequestreview-2218816234


More information about the build-dev mailing list