The test searches for "JShellToolProvider" in the main thread's stack trace, 
which is pulled from an SA heap dump. Typically the main thread is blocked in 
Object.wait(), so SA can determine its stack trace. However, the wait has a 
100ms timeout, so the thread does periodically wake up and does a few things 
before waiting again. If SA tries to get the stack trace while the thread is 
active, it may not be able to, and this causes the test to fail. I determined 
this only happens about 1 in 5000-10000 runs. So as a fix I'm allowing the test 
to do one retry. That should make it extremely unlikely that we ever see this 
failure again. I also bumped up the amount of time the test waits before doing 
the heap dump from 2 seconds to 4 just to make absolutely sure the main thread 
is fully started before doing the heap dump.

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

Commit messages:
 - Retry heap dump if main thread stack trace is not present.

Changes: https://git.openjdk.java.net/jdk/pull/6795/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6795&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8269556
  Stats: 26 lines in 1 file changed: 19 ins; 0 del; 7 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6795.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6795/head:pull/6795

PR: https://git.openjdk.java.net/jdk/pull/6795

Reply via email to