RFR: JDK-8298445: Add LeakSanitizer support in HotSpot [v4]
Justin King
jcking at openjdk.org
Tue Feb 7 15:32:11 UTC 2023
> Adds initial LSan (LeakSanitizer) support to Hotspot. This setup has been used to identify multiple leaks so far. It can run most of the test suite except those that also fail with ASan, which is being looked at separately. It is especially useful when combined with ASan, as LSan can use poisoning information to determine what memory to scan or not to scan, making leak detection more accurate and faster.
>
> **Suppressing:**
> Currently the suppression list is only used to suppress JLI leaks that are known, the rest are done in code. Suppressing needs to identify the source of thet leak. Due to Hotspot's code organization, we would need to suppress `os::malloc` and friends, which would suppress everything. Suppressing in code has the added benefit of being explicit and surviving refactors if methods change.
>
> **Caveats:**
> - By default ASan enables LSan, however we explicitly disable it unless `--enable-lsan` is given. It is useful to be able to use ASan without LSan. Using LSan by itself is less likely to be useful and will probably not work, but its still possible currently.
Justin King has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains ten commits:
- Merge branch 'master' into lsan
- Fix grammatical error
Signed-off-by: Justin King <jcking at google.com>
- Update based on review and remove restriction on compressed oops and class pointers
Signed-off-by: Justin King <jcking at google.com>
- Support CDS
Signed-off-by: Justin King <jcking at google.com>
- Merge remote-tracking branch 'upstream/master' into lsan
- Merge remote-tracking branch 'upstream/master' into lsan
- Merge remote-tracking branch 'upstream/master' into lsan
- Implement initial LSAN support v2
Signed-off-by: Justin King <jcking at google.com>
- Implement initial LSAN support
-------------
Changes: https://git.openjdk.org/jdk/pull/12229/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12229&range=03
Stats: 316 lines in 23 files changed: 307 ins; 0 del; 9 mod
Patch: https://git.openjdk.org/jdk/pull/12229.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12229/head:pull/12229
PR: https://git.openjdk.org/jdk/pull/12229
More information about the build-dev
mailing list