8330363: JDI ThreadDeathEvent/thread/thread001 timed out with UT enabled#31156
8330363: JDI ThreadDeathEvent/thread/thread001 timed out with UT enabled#31156plummercj wants to merge 1 commit into
Conversation
|
👋 Welcome back cjplummer! A progress list of the required criteria for merging this PR into |
|
@plummercj This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be: You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 100 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
|
@plummercj The following label will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command. |
|
Hi, what does |
I think that's something that is only supported internally at Oracle. It runs the test with UsageTracker enabled. This frequently causes issues with JDI tests that track ThreadStart and ThreadDeath events because running with UsageTracker enabled results in the UsageTracker thread starting and exiting while the test is running. |
After receiving the expected 4 ThreadDeathEvents, the test disables the ThreadDeathRequest and stops processing events. However, there is already another ThreadDeathEvent in flight for the UsageTracker thread. That results in suspending all debuggee threads, with the expectation that the debugger will eventually process the event and do an eventSet.resume(). That never happens, leaving the debuggee suspended while the debugger waits for the debuggee to send a DONE command, which it can't because it is suspended.
After disabling the ThreadDeathRequest, the debuggee needs to make sure all pending events get processed.
Tested by running thread001 about 600 times with JTREG_USAGE_TRACKER=true
Progress
Issue
Reviewers
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/31156/head:pull/31156$ git checkout pull/31156Update a local copy of the PR:
$ git checkout pull/31156$ git pull https://git.openjdk.org/jdk.git pull/31156/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 31156View PR using the GUI difftool:
$ git pr show -t 31156Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/31156.diff
Using Webrev
Link to Webrev Comment