Integrated: JDK-8327971: Multiple ASAN errors reported for metaspace
Thomas Stuefe
stuefe at openjdk.org
Wed Mar 27 08:39:35 UTC 2024
On Tue, 12 Mar 2024 11:45:47 GMT, Thomas Stuefe <stuefe at openjdk.org> wrote:
> We have multiple issues that cause the ASAN build in fastdebug to not work, or to fail gtests.
>
> 1) When adding ASAN support for metaspace, we decided to track poisoning not at the OS border (map) but at the border between metaspace and outer JVM code. More precisely, at the border of ChunkManager chunk allocation/deallocation. Chunks handed out by the chunk manager are unpoisoned and poisoned when handed back.
>
> This causes some problems since within metaspace, we access memory that is committed but not yet handed to the user (for zapping or for verification in debug builds). So, from the ASANs' view, those accesses are invalid, whereas for Metaspace, those accesses are perfectly valid.
>
> In these cases, we need to unpoison the memory or exclude the code section, if possible, for ASAN builds. This affects both JVM code and gtests.
>
> 2) NMT gtests sometimes do dangerous things deliberately (accessing invalid memory to track error recognition), and these tests should be disabled with ASAN
This pull request has now been integrated.
Changeset: 9e566d76
Author: Thomas Stuefe <stuefe at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/9e566d76d1d8acca27d8f69fffcbeb0b49b060ba
Stats: 50 lines in 9 files changed: 48 ins; 0 del; 2 mod
8327971: Multiple ASAN errors reported for metaspace
8327988: When running ASAN, disable dangerous NMT test
Reviewed-by: jsjolen, rkennke
-------------
PR: https://git.openjdk.org/jdk/pull/18230
More information about the hotspot-runtime-dev
mailing list