> As noted in [JDK-8352088](https://bugs.openjdk.org/browse/JDK-8352088), JVMTI 
> `GetThreadGroupChildren` does an upcall to java. This results in  
> a`ClassPrepare` event the first time it does this, and these events can cause 
> problems (deadlocks) for the debugger or debug agent. The  
> [JDK-8352088](https://bugs.openjdk.org/browse/JDK-8352088) was fixed to get 
> rid of class loading during Java upcall from `GetThreadGroupChildren`. 
> However, some other events can be generated as well. It is more safe to 
> disable all JVMTI events during debugger-related upcalls originated by JVMTI.
> The `ClassPrepare` events are important for the debug agent. So, an assert 
> was added into `ClassPrepare` event generation to make sure there are no 
> attempts to post this event during upcalls.
> Some specific implementation details can be added to the first PR comment.
> 
> Testing:
>  - Verified with the test `jdk/com/sun/jdi/EarlyThreadGroupChildrenTest.java` 
> that was added with the fix of 
> [JDK-8352088](https://bugs.openjdk.org/browse/JDK-8352088):
>    - the assert described above is fired if the fix of JDK-8352088 is removed
>    - the test is passed without if the fix of JDK-8352088 is removed and the 
> assert is removed
>  - Ran mach5 tiers 1-6

Serguei Spitsyn has updated the pull request incrementally with one additional 
commit since the last revision:

  fix a build time error for minimal VM config

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/24539/files
  - new: https://git.openjdk.org/jdk/pull/24539/files/f0b70372..908de6c0

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=24539&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24539&range=02-03

  Stats: 3 lines in 1 file changed: 3 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/24539.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24539/head:pull/24539

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

Reply via email to