RFR 8222936: mlvm/anonloader/stress/randomBytecodes/Test.java fails due to "ERROR: There were 1 hangups during parsing."
Harold Seigel
harold.seigel at oracle.com
Thu May 30 18:35:09 UTC 2019
Hi,
Please review this fix for bug JDK-8222936.
Test .../randomBytecodes/Test.java uses StressClassLoadingTest.java to
go through 1000's of iterations where it creates and starts a thread and
waits 10 seconds. The thread tries to load a class whose bytes are
potentially randomized. If the created thread is still alive after 10
seconds then the test saves the randomized class and records a hang
failure. It then repeats the process for the next iteration.
This test fails about once a month with a hang failure. These appear to
be invalid failures because the hangs cannot be reproduced with the
saved randomized class and because the stack traces of the hanging
threads are empty. Perhaps it just took more than 10 seconds for the
thread to start because of lack of machine resources?
This change prevents the invalid failures by blocking the entire test
until either the test fails with a timeout or the loading thread
finishes, even if it takes more than 10 seconds.
Open Webrev:
http://cr.openjdk.java.net/~hseigel/bug_8222936/webrev/index.html
JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8222936
StressClassLoadingTest.java is used by three tests,
.../randomBytecodes/Test.java, .../byteMutation/Test.java, and
.../parallelLoad/Test.java. The fix was tested by running the three
tests one thousand times on Linux x64 and a few times on Solaris,
Windows, and Mac OS X.
Thanks, Harold
More information about the hotspot-runtime-dev
mailing list