On Thu, 17 Feb 2022 02:25:15 GMT, David Holmes <dhol...@openjdk.org> wrote:

> The correctness here depends on exactly how these different functions can be 
> called. I would have expected the allowed sequence to be: activate -> 1or 
> more processUnloads -> reset
> 
> but given processUnloads can somehow occur concurrently with activate, there 
> is obviously more at play here. The main question for me is whether reset can 
> be called more than once and whether it too can be called when processUnloads 
> is still executing? If yes then there are still problems.

`classTrack_activate()` is called inside `debugLoop_run()`, so it looks like 
that jvmti callback is enabled at the time.

Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libjdwp.so+0xf0ea]  classTrack_activate+0x3a
C  [libjdwp.so+0x166dd]  installHandler+0xdd
C  [libjdwp.so+0x618c]  setCommand+0x17c
C  [libjdwp.so+0x13cd9]  debugLoop_run+0x299
C  [libjdwp.so+0x275e4]  attachThread+0x54
V  [libjvm.so+0x12be611]  JvmtiAgentThread::call_start_function()+0x181
V  [libjvm.so+0x1a9e496]  JavaThread::thread_main_inner()+0x5c6
V  [libjvm.so+0x1aa7100]  Thread::call_run()+0x100
V  [libjvm.so+0x1666814]  thread_native_entry(Thread*)+0x104

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

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

Reply via email to