On Mon, 16 Jun 2025 08:04:19 GMT, Jaikiran Pai <j...@openjdk.org> wrote:
>> Can I please get a review of this test-only change which addresses an >> intermittent failure in `test/jdk/com/sun/net/httpserver/Test12.java`? This >> fixes https://bugs.openjdk.org/browse/JDK-8359477. >> >> In the linked JBS issue I've added a comment which explains what causes this >> intermittent failure. The issue is a bug/race within the test. There are 2 >> commits in this PR and only of them is necessary for addressing this issue. >> The other one is a general cleanup of the test. I am willing to revert the >> general cleanup commit from this test if others feel that it shouldn't be >> done in this PR. >> >> The actual fix is this commit >> https://github.com/openjdk/jdk/commit/a0f8fc806e1682ef909cb7b4a449be855072fe48 >> which stops deleting the input files upon test completion. That should be >> OK because the jtreg test infrastructure will clean them up from the scratch >> directory after the completion of the test run (if the test succeeds). There >> are other ways to address this race condition and continue to delete these >> files (for example, co-ordinating between the test and the test specific >> `FileServerHandler`), but to me it didn't seem worthwhile doing that. >> >> I've run this change around a 1000 times and haven't seen it fail. >> >> P.S: The `test/jdk/com/sun/net/httpserver/Test1.java` does the same things >> as this test, but does it sequentially. I'm pretty sure that we should be >> able to trigger this intermittent test failure in that test too if I reorder >> the `test()` calls in that test to have a fixed length test be the last one >> to execute (i.e. `test (true, ...)` instead of the current `test(false, >> ...)`). > > Jaikiran Pai has updated the pull request incrementally with one additional > commit since the last revision: > > minor change to test's log message Marked as reviewed by vyazici (Committer). test/jdk/com/sun/net/httpserver/Test12.java line 113: > 111: executor.shutdown (); > 112: Files.delete(smallFilePath); > 113: Files.delete(largeFilePath); Instead of removing the file cleanup, IMHO, _good practice_, can't we use `shutdown() + awaitTermination()` or `shutdownNow()` for the executor? ------------- PR Review: https://git.openjdk.org/jdk/pull/25820#pullrequestreview-2931204355 PR Review Comment: https://git.openjdk.org/jdk/pull/25820#discussion_r2149408509