RFR: 8290908: misc tests fail: assert(!thread->owns_locks()) failed: must release all locks when leaving VM

Serguei Spitsyn sspitsyn at openjdk.org
Mon Aug 1 12:55:58 UTC 2022


This is a regression that has been introduced by the fix of:
[8256811](https://bugs.openjdk.org/browse/JDK-8256811): Delayed/missed jdwp class unloading events

This is the relevant comment from Zhengyu:

It is caused by https://bugs.openjdk.org/browse/JDK-8256811 as JvmtiExport::post_object_free() call does not expect under any lock.

I think we can move following code outside of lock, as flush_obect_free_events() races ServiceThread's JvmtiTagMap::flush_all_object_free_events() call anyway.

  if (event_type == JVMTI_EVENT_OBJECT_FREE) {
    flush_object_free_events(env);
  }

The fix is as was suggested by Zhengyu above.
I was not able to reproduce JCK and nsk.jvmti test failures mentioned in the bug report.
However, this fix should address the problem as it moves the call to `flush_object_free_events(env)` out of a critical section with a lock.

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

Commit messages:
 - 8290908: misc tests fail: assert(->owns_locks()) failed: must release all locks when leaving VM

Changes: https://git.openjdk.org/jdk/pull/9699/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=9699&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8290908
  Stats: 8 lines in 1 file changed: 4 ins; 4 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/9699.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/9699/head:pull/9699

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


More information about the serviceability-dev mailing list