> Fixes leaks I could identify on `Agent_OnAttach` failure paths.
> 
> In `libinstrument`:
> - the changes to `Agent_OnAttach` are the important ones, while 
> `DEF_Agent_OnLoad` and `loadAgent` are updated for hygiene and uniformity 
> (when they fail the process gets killed anyway)
> - besides implementing a proper cleanup (the "Improve failure cleanup in 
> libinstrument" commit), I also reordered a few agent initialization steps to 
> not create the JVM TI environment and change the classpath before the 
> provided JAR is validated (the "Reorder blocks to minimize unrecoverable 
> changes" commit)
> 
> The HotSpot change is adding a destructor to `JvmtiAgent` for the `delete` in 
> `JvmtiAgentList::load_agent` executed when `Agent_OnAttach` fails.
> 
> Tested by running `jdk_instrument`, `svc_tools`, `vmTestbase_nsk_aod`, 
> `hotspot/vmTestbase/nsk/jvmti/AttachOnDemand`, 
> `hotspot/serviceability/jvmti/RedefineClasse`.
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

Timofei Pushkin has updated the pull request incrementally with one additional 
commit since the last revision:

  Address the review

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/33608/files
  - new: https://git.openjdk.org/jdk/pull/33608/files/c72c43f5..64f2ec8e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=33608&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=33608&range=00-01

  Stats: 5 lines in 2 files changed: 2 ins; 0 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/33608.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/33608/head:pull/33608

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

Reply via email to