-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
21, 25
I have a patch (plan to bring it upstream but have not found the time yet to clean it up) to fake NUMA migrations - essentially, to test what happens if we have tons of cases where the OS scheduler schedules a task to a different NUMA node.
I found some bugs with that in G1, which was related to a customer issue (JDK-8351500). However, I also see that ParallelGC crashes reliably in TestJNICriticalStressTest with something that looks like a c-heap overwriter:
```
----------System.out:(38/2579)----------
[0.005s][info][gc] Using Parallel
NMT Block at 0x00007f405804c5f0, corruption at: 0x00007f405804c620:
0x00007f405804c570: d0 c4 04 58 40 7f 00 00 e8 8e 00 00 00 00 00 00
0x00007f405804c580: 00 00 00 00 00 00 00 00 65 00 00 00 00 00 00 00
0x00007f405804c590: 38 00 00 00 00 00 00 00 00 00 00 00 05 00 9e e9
0x00007f405804c5a0: b8 9c b0 5e 40 7f 00 00 5d 3a fb a7 bf 80 ff ff
0x00007f405804c5b0: 00 00 00 00 00 00 00 00 08 00 00 00 08 00 00 00
0x00007f405804c5c0: 40 c6 04 58 40 7f 00 00 0b 00 00 00 00 00 00 00
0x00007f405804c5d0: 00 00 00 00 f1 f1 f1 f1 e8 8e 00 00 00 00 00 00
0x00007f405804c5e0: 00 00 00 00 00 00 00 00 45 00 00 00 00 00 00 00
0x00007f405804c5f0: 20 00 00 00 00 00 00 00 00 00 00 00 05 00 9e e9
0x00007f405804c600: 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
0x00007f405804c610: 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00
0x00007f405804c620: 08 00 00 00 00 00 00 00 65 00 00 00 00 00 00 00
0x00007f405804c630: 40 00 00 00 00 00 00 00 00 00 00 00 05 00 9e e9
0x00007f405804c640: a0 c6 04 58 40 7f 00 00 e0 c7 04 58 40 7f 00 00
0x00007f405804c650: 20 c9 04 58 40 7f 00 00 60 ca 04 58 40 7f 00 00
0x00007f405804c660: a0 cb 04 58 40 7f 00 00 e0 cc 04 58 40 7f 00 00
0x00007f405804c670: 20 ce 04 58 40 7f 00 00 60 cf 04 58 40 7f 00 00
0x00007f405804c680: e8 8e 00 00 00 00 00 00 75 00 00 00 00 00 00 00
0x00007f405804c690: 48 00 00 00 00 00 00 00 00 00 00 00 05 00 9e e9
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/shared/projects/openjdk/jdk-jdk21u-dev/source/src/hotspot/share/services/mallocHeader.inline.hpp:107), pid=234960, tid=234964
# fatal error: NMT corruption: Block at 0x00007f405804c600: footer canary broken at 0x00007f405804c620 (buffer overflow?)
#
# JRE version: (21.0.8) (fastdebug build )
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 21.0.8-internal-adhoc.thomas.source, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, parallel gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1381ead] MallocHeader* MallocHeader::resolve_checked_impl<void*, MallocHeader*>(void*)+0x14d
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /shared/projects/openjdk/jtreg-runs/jtreg-21u/JTwork/gc/TestJNICriticalStressTest_parallel/core.234960)
#
# An error report file with more information is saved as:
# /shared/projects/openjdk/jtreg-runs/jtreg-21u/JTwork/gc/TestJNICriticalStressTest_parallel/hs_err_pid234960.log
```
I see it in 21 and 25. Possibly older released too, not checked yet.
I found some bugs with that in G1, which was related to a customer issue (
```
----------System.out:(38/2579)----------
[0.005s][info][gc] Using Parallel
NMT Block at 0x00007f405804c5f0, corruption at: 0x00007f405804c620:
0x00007f405804c570: d0 c4 04 58 40 7f 00 00 e8 8e 00 00 00 00 00 00
0x00007f405804c580: 00 00 00 00 00 00 00 00 65 00 00 00 00 00 00 00
0x00007f405804c590: 38 00 00 00 00 00 00 00 00 00 00 00 05 00 9e e9
0x00007f405804c5a0: b8 9c b0 5e 40 7f 00 00 5d 3a fb a7 bf 80 ff ff
0x00007f405804c5b0: 00 00 00 00 00 00 00 00 08 00 00 00 08 00 00 00
0x00007f405804c5c0: 40 c6 04 58 40 7f 00 00 0b 00 00 00 00 00 00 00
0x00007f405804c5d0: 00 00 00 00 f1 f1 f1 f1 e8 8e 00 00 00 00 00 00
0x00007f405804c5e0: 00 00 00 00 00 00 00 00 45 00 00 00 00 00 00 00
0x00007f405804c5f0: 20 00 00 00 00 00 00 00 00 00 00 00 05 00 9e e9
0x00007f405804c600: 00 00 00 00 01 00 00 00 02 00 00 00 03 00 00 00
0x00007f405804c610: 04 00 00 00 05 00 00 00 06 00 00 00 07 00 00 00
0x00007f405804c620: 08 00 00 00 00 00 00 00 65 00 00 00 00 00 00 00
0x00007f405804c630: 40 00 00 00 00 00 00 00 00 00 00 00 05 00 9e e9
0x00007f405804c640: a0 c6 04 58 40 7f 00 00 e0 c7 04 58 40 7f 00 00
0x00007f405804c650: 20 c9 04 58 40 7f 00 00 60 ca 04 58 40 7f 00 00
0x00007f405804c660: a0 cb 04 58 40 7f 00 00 e0 cc 04 58 40 7f 00 00
0x00007f405804c670: 20 ce 04 58 40 7f 00 00 60 cf 04 58 40 7f 00 00
0x00007f405804c680: e8 8e 00 00 00 00 00 00 75 00 00 00 00 00 00 00
0x00007f405804c690: 48 00 00 00 00 00 00 00 00 00 00 00 05 00 9e e9
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (/shared/projects/openjdk/jdk-jdk21u-dev/source/src/hotspot/share/services/mallocHeader.inline.hpp:107), pid=234960, tid=234964
# fatal error: NMT corruption: Block at 0x00007f405804c600: footer canary broken at 0x00007f405804c620 (buffer overflow?)
#
# JRE version: (21.0.8) (fastdebug build )
# Java VM: OpenJDK 64-Bit Server VM (fastdebug 21.0.8-internal-adhoc.thomas.source, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, parallel gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1381ead] MallocHeader* MallocHeader::resolve_checked_impl<void*, MallocHeader*>(void*)+0x14d
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport -p%p -s%s -c%c -d%d -P%P -u%u -g%g -- %E" (or dumping to /shared/projects/openjdk/jtreg-runs/jtreg-21u/JTwork/gc/TestJNICriticalStressTest_parallel/core.234960)
#
# An error report file with more information is saved as:
# /shared/projects/openjdk/jtreg-runs/jtreg-21u/JTwork/gc/TestJNICriticalStressTest_parallel/hs_err_pid234960.log
```
I see it in 21 and 25. Possibly older released too, not checked yet.
- relates to
-
JDK-8351500 G1: NUMA migrations cause crashes in region allocation
-
- Resolved
-