On Thu, 24 Nov 2022 11:53:11 GMT, Daniel Fuchs <dfu...@openjdk.org> wrote:
>> Please find here a test fix for the >> sun/net/www/http/HttpClient/MultiThreadTest. >> >> This test makes concurrent connections to a server using multiple threads, >> and due to keep-alive, expects that there should not be more connections >> than concurrent threads. However, the test has been seen occasionally and >> intermittently failing because it observed more connections than threads. >> The test has some built-in logic to exclude connections that do not come >> from the test itself, so external interference should not be the cause. >> >> The suspicion is that occasionally some connection might remain idle for >> more than the keep-alive timeout, which then causes it to be closed, and >> allows the client to open a new connection. >> >> This fix works this way: >> >> - first it adds some logic to figure out whether a Worker thread might have >> remained idle for more than the keep-alive timeout >> - then it takes this information into account when matching the number of >> actual connections with the number of expected connection, >> - additionally it reduces the keep-alive timeout to one second, and forces >> some sleep on the client side after half the requests have been sent to >> increase the probability that some connections will be idle long enough to >> trigger the idle-time detection logic (as a means to test the fix itself). >> >> Finally it improves logging by adding more diagnosis (including human >> readable time stamps), so that future failures, if any, will be easier to >> diagnose. Note that reducing the keep-alive time to 1 second makes the test >> run much faster even with the 1500ms sleep on the client side. >> >> With this fix I no longer observe the test failing. > > Daniel Fuchs has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains ten additional > commits since the last revision: > > - Merge branch 'master' into MultiThreadTest-8223783 > - Add a comment > - Use the tests list to simplify the logic of waiting for clients to finish > - Incorporated review feedback > - Incorporated review feedback > - Merge branch 'master' into MultiThreadTest-8223783 > - Update test/jdk/sun/net/www/http/HttpClient/MultiThreadTest.java > > Co-authored-by: Andrey Turbanov <turban...@gmail.com> > - Update test/jdk/sun/net/www/http/HttpClient/MultiThreadTest.java > > Co-authored-by: Andrey Turbanov <turban...@gmail.com> > - 8223783 Marked as reviewed by michaelm (Reviewer). ------------- PR: https://git.openjdk.org/jdk/pull/11268