RFR: 8300032: DwarfParser resource leak

Daniel JeliƄski djelinski at openjdk.org
Thu Jan 12 13:11:57 UTC 2023


Please review this fix for DwarfParser cleaner.

The original code registered the cleaner using a lambda that captured a reference to the parser object; as a result, the object was never GCed, and the cleaner never ran.

In this version I moved the lambda creation to a static method, so that it can't capture a reference to the parser.

Additionally, the new code uses a static cleaner; the cleaner object creation and cleanup are heavy operations (every cleaner comes with its own thread), and it's preferable to use a single shared cleaner where possible.

I verified manually that the native `destroyDwarfContext` method is called after this fix. No new automated test. Existing tier1-2 tests continue to pass.

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

Commit messages:
 - Fix dwarf cleaner

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

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


More information about the serviceability-dev mailing list