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, ...)`).

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

Commit messages:
 - 8359477: com/sun/net/httpserver/Test12.java appears to have a temp file race
 - 8359477: general cleanup of the test

Changes: https://git.openjdk.org/jdk/pull/25820/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25820&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8359477
  Stats: 122 lines in 1 file changed: 35 ins; 60 del; 27 mod
  Patch: https://git.openjdk.org/jdk/pull/25820.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25820/head:pull/25820

PR: https://git.openjdk.org/jdk/pull/25820

Reply via email to