JDK-8261916 : gtest/GTestWrapper.java vmErrorTest.unimplemented1_vm_assert failed
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 17
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux
  • CPU: x86_64
  • Submitted: 2021-02-17
  • Updated: 2025-01-21
  • Resolved: 2021-03-15
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 16 JDK 17
11.0.12-oracleFixed 16.0.2Fixed 17 b14Fixed
Related Reports
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
Description
The following test failed in the JDK17 CI:

gtest/GTestWrapper.java

Here's a snippet from the log file:

[----------] 12 tests from vmErrorTest
[ RUN      ] vmErrorTest.resourceMark_vm_assert
[       OK ] vmErrorTest.resourceMark_vm_assert (243 ms)
[ RUN      ] vmErrorTest.assert1_vm_assert
[       OK ] vmErrorTest.assert1_vm_assert (237 ms)
[ RUN      ] vmErrorTest.assert2_vm_assert
[       OK ] vmErrorTest.assert2_vm_assert (234 ms)
[ RUN      ] vmErrorTest.guarantee1_vm_assert
[       OK ] vmErrorTest.guarantee1_vm_assert (229 ms)
[ RUN      ] vmErrorTest.guarantee2_vm_assert
[       OK ] vmErrorTest.guarantee2_vm_assert (236 ms)
[ RUN      ] vmErrorTest.fatal1_vm_assert
[       OK ] vmErrorTest.fatal1_vm_assert (247 ms)
[ RUN      ] vmErrorTest.fatal2_vm_assert
[       OK ] vmErrorTest.fatal2_vm_assert (216 ms)
[ RUN      ] vmErrorTest.fatal3_vm_assert
[       OK ] vmErrorTest.fatal3_vm_assert (224 ms)
[ RUN      ] vmErrorTest.out_of_memory1_vm_assert
[       OK ] vmErrorTest.out_of_memory1_vm_assert (223 ms)
[ RUN      ] vmErrorTest.shouldnotcallthis1_vm_assert
[       OK ] vmErrorTest.shouldnotcallthis1_vm_assert (230 ms)
[ RUN      ] vmErrorTest.shouldnotreachhere1_vm_assert
[       OK ] vmErrorTest.shouldnotreachhere1_vm_assert (232 ms)
[ RUN      ] vmErrorTest.unimplemented1_vm_assert
/opt/mach5/mesos/work_dir/slaves/983c483a-6907-44e0-ad29-98c7183575e2-S15067/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/3e33a835-0119-4855-b0e4-d98de1473f0f/runs/c5f058e4-aa9f-43a8-8a15-153cdfa2f509/workspace/open/test/hotspot/gtest/utilities/test_vmerror.cpp:96: Failure
Death test: child_vmErrorTest_unimplemented1_()
    Result: died but not with expected exit code:
            Terminated by signal 6 (core dumped)
Actual msg:
[  DEATH   ] assert failed: Error: Unimplemented()*** Error in `/opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/gtestLauncher': double free or corruption (!prev): 0x0000564abacb7b00 ***
[  DEATH   ] ======= Backtrace: =========
[  DEATH   ] /lib64/libc.so.6(+0x81329)[0x7ff4a810a329]
[  DEATH   ] /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/libjvm.so(+0x1db1b5c)[0x7ff4aa50ab5c]
[  DEATH   ] /lib64/libc.so.6(__cxa_finalize+0x9a)[0x7ff4a80c30aa]
[  DEATH   ] /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/libjvm.so(+0x354a63)[0x7ff4a8aada63]
[  DEATH   ] ======= Memory map: ========
[  DEATH   ] 60e800000-62dc00000 rw-p 00000000 00:00 0 
[  DEATH   ] 62dc00000-800020000 ---p 00000000 00:00 0 
[  DEATH   ] 800020000-800030000 rw-p 00000000 00:00 0 
[  DEATH   ] 800030000-800040000 ---p 00000000 00:00 0 
[  DEATH   ] 800040000-800080000 rw-p 00000000 00:00 0 
[  DEATH   ] 800080000-840000000 ---p 00000000 00:00 0 
[  DEATH   ] 564aba7c0000-564aba7c1000 r-xp 00000000 08:03 872849400                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/gtestLauncher
[  DEATH   ] 564aba7c1000-564aba7c2000 r--p 00000000 08:03 872849400                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/gtestLauncher
[  DEATH   ] 564aba7c2000-564aba7c3000 rw-p 00001000 08:03 872849400                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/gtestLauncher
[  DEATH   ] 564abac0d000-564abb144000 rw-p 00000000 00:00 0                          [heap]
[  DEATH   ] 7ff430000000-7ff430021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff430021000-7ff434000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff434000000-7ff434021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff434021000-7ff438000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff438000000-7ff438021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff438021000-7ff43c000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff43c000000-7ff43c021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff43c021000-7ff440000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff440000000-7ff440107000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff440107000-7ff444000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff444000000-7ff444021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff444021000-7ff448000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff448000000-7ff448021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff448021000-7ff44c000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff44c000000-7ff44c0c6000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff44c0c6000-7ff450000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff450000000-7ff450021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff450021000-7ff454000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff454000000-7ff454021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff454021000-7ff458000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff458000000-7ff458021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff458021000-7ff45c000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff45c000000-7ff45c021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff45c021000-7ff460000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff460000000-7ff460021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff460021000-7ff464000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff464000000-7ff464021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff464021000-7ff468000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff468000000-7ff468021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff468021000-7ff46c000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff46dafa000-7ff46dafb000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff46dafb000-7ff46dbfc000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff46dbfc000-7ff46dc00000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff46dc00000-7ff46dcfd000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff46dcfd000-7ff46dd01000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff46dd01000-7ff46ddfe000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff46ddfe000-7ff46de02000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff46de02000-7ff46deff000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff46deff000-7ff46df03000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff46df03000-7ff470000000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff470000000-7ff470021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff470021000-7ff474000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff474000000-7ff474021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff474021000-7ff478000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff478000000-7ff478021000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff478021000-7ff47c000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47c0f9000-7ff47c0fd000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47c0fd000-7ff47c1fa000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47c1fa000-7ff47c1fe000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47c1fe000-7ff47c2fb000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47c2fb000-7ff47c2ff000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47c2ff000-7ff47c3fc000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47c3fc000-7ff47c400000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47c400000-7ff47c4fd000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47c4fd000-7ff47c501000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47c501000-7ff47c5fe000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47c5fe000-7ff47c602000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47c602000-7ff47c6ff000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47c6ff000-7ff47c703000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47c703000-7ff47cb70000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47cb70000-7ff47d000000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47d053000-7ff47d054000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47d054000-7ff47d231000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47d231000-7ff47d232000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47d232000-7ff47d333000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47d333000-7ff47d334000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47d334000-7ff47dc3d000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47dc3d000-7ff47dc3e000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47dc3e000-7ff47dd3f000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47dd3f000-7ff47dd40000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47dd40000-7ff47de41000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47de41000-7ff47de42000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff47de42000-7ff47e794000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff47e794000-7ff485c24000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff485c24000-7ff4863f4000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4863f4000-7ff48d884000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff48d884000-7ff48d97e000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff48d97e000-7ff48e810000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff48e810000-7ff48e90a000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff48e90a000-7ff48f79c000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff48f79c000-7ff48f896000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff48f896000-7ff490728000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff490728000-7ff490f35000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff490f35000-7ff49101b000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff49101b000-7ff49128b000 rwxp 00000000 00:00 0 
[  DEATH   ] 7ff49128b000-7ff4915ad000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff4915ad000-7ff49181d000 rwxp 00000000 00:00 0 
[  DEATH   ] 7ff49181d000-7ff498ae4000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff498ae4000-7ff498d54000 rwxp 00000000 00:00 0 
[  DEATH   ] 7ff498d54000-7ff4a001b000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff4a001b000-7ff4a0027000 r-xp 00000000 08:03 2881766                    /usr/lib64/libnss_files-2.17.so
[  DEATH   ] 7ff4a0027000-7ff4a0226000 ---p 0000c000 08:03 2881766                    /usr/lib64/libnss_files-2.17.so
[  DEATH   ] 7ff4a0226000-7ff4a0227000 r--p 0000b000 08:03 2881766                    /usr/lib64/libnss_files-2.17.so
[  DEATH   ] 7ff4a0227000-7ff4a0228000 rw-p 0000c000 08:03 2881766                    /usr/lib64/libnss_files-2.17.so
[  DEATH   ] 7ff4a0228000-7ff4a022e000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4a784b000-7ff4a7860000 r-xp 00000000 08:03 237                        /usr/lib64/libgcc_s-4.8.5-20150702.so.1
[  DEATH   ] 7ff4a7860000-7ff4a7a5f000 ---p 00015000 08:03 237                        /usr/lib64/libgcc_s-4.8.5-20150702.so.1
[  DEATH   ] 7ff4a7a5f000-7ff4a7a60000 r--p 00014000 08:03 237                        /usr/lib64/libgcc_s-4.8.5-20150702.so.1
[  DEATH   ] 7ff4a7a60000-7ff4a7a61000 rw-p 00015000 08:03 237                        /usr/lib64/libgcc_s-4.8.5-20150702.so.1
[  DEATH   ] 7ff4a7a61000-7ff4a7a78000 r-xp 00000000 08:03 2881774                    /usr/lib64/libpthread-2.17.so
[  DEATH   ] 7ff4a7a78000-7ff4a7c77000 ---p 00017000 08:03 2881774                    /usr/lib64/libpthread-2.17.so
[  DEATH   ] 7ff4a7c77000-7ff4a7c78000 r--p 00016000 08:03 2881774                    /usr/lib64/libpthread-2.17.so
[  DEATH   ] 7ff4a7c78000-7ff4a7c79000 rw-p 00017000 08:03 2881774                    /usr/lib64/libpthread-2.17.so
[  DEATH   ] 7ff4a7c79000-7ff4a7c7d000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4a7c7d000-7ff4a7c7f000 r-xp 00000000 08:03 2881754                    /usr/lib64/libdl-2.17.so
[  DEATH   ] 7ff4a7c7f000-7ff4a7e7f000 ---p 00002000 08:03 2881754                    /usr/lib64/libdl-2.17.so
[  DEATH   ] 7ff4a7e7f000-7ff4a7e80000 r--p 00002000 08:03 2881754                    /usr/lib64/libdl-2.17.so
[  DEATH   ] 7ff4a7e80000-7ff4a7e81000 rw-p 00003000 08:03 2881754                    /usr/lib64/libdl-2.17.so
[  DEATH   ] 7ff4a7e81000-7ff4a7e88000 r-xp 00000000 08:03 1384391                    /usr/lib64/librt-2.17.so
[  DEATH   ] 7ff4a7e88000-7ff4a8087000 ---p 00007000 08:03 1384391                    /usr/lib64/librt-2.17.so
[  DEATH   ] 7ff4a8087000-7ff4a8088000 r--p 00006000 08:03 1384391                    /usr/lib64/librt-2.17.so
[  DEATH   ] 7ff4a8088000-7ff4a8089000 rw-p 00007000 08:03 1384391                    /usr/lib64/librt-2.17.so
[  DEATH   ] 7ff4a8089000-7ff4a824d000 r-xp 00000000 08:03 2881748                    /usr/lib64/libc-2.17.so
[  DEATH   ] 7ff4a824d000-7ff4a844c000 ---p 001c4000 08:03 2881748                    /usr/lib64/libc-2.17.so
[  DEATH   ] 7ff4a844c000-7ff4a8450000 r--p 001c3000 08:03 2881748                    /usr/lib64/libc-2.17.so
[  DEATH   ] 7ff4a8450000-7ff4a8452000 rw-p 001c7000 08:03 2881748                    /usr/lib64/libc-2.17.so
[  DEATH   ] 7ff4a8452000-7ff4a8457000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4a8457000-7ff4a8558000 r-xp 00000000 08:03 2881756                    /usr/lib64/libm-2.17.so
[  DEATH   ] 7ff4a8558000-7ff4a8757000 ---p 00101000 08:03 2881756                    /usr/lib64/libm-2.17.so
[  DEATH   ] 7ff4a8757000-7ff4a8758000 r--p 00100000 08:03 2881756                    /usr/lib64/libm-2.17.so
[  DEATH   ] 7ff4a8758000-7ff4a8759000 rw-p 00101000 08:03 2881756                    /usr/lib64/libm-2.17.so
[  DEATH   ] 7ff4a8759000-7ff4aaab6000 r-xp 00000000 08:03 872849401                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/libjvm.so
[  DEATH   ] 7ff4aaab6000-7ff4aaab7000 ---p 0235d000 08:03 872849401                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/libjvm.so
[  DEATH   ] 7ff4aaab7000-7ff4aabb1000 r--p 0235d000 08:03 872849401                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/libjvm.so
[  DEATH   ] 7ff4aabb1000-7ff4aabe7000 rw-p 02457000 08:03 872849401                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.test/hotspot/gtest/server/libjvm.so
[  DEATH   ] 7ff4aabe7000-7ff4aaf14000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4aaf14000-7ff4aaf36000 r-xp 00000000 08:03 330344                     /usr/lib64/ld-2.17.so
[  DEATH   ] 7ff4aaf63000-7ff4aafe8000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4aafe8000-7ff4ab0ce000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff4ab0ce000-7ff4ab0d3000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4ab0d3000-7ff4ab0da000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff4ab0da000-7ff4ab0fe000 r-xp 00000000 08:03 209088411                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.jdk/jdk-17/fastdebug/lib/libjava.so
[  DEATH   ] 7ff4ab0fe000-7ff4ab0ff000 ---p 00024000 08:03 209088411                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.jdk/jdk-17/fastdebug/lib/libjava.so
[  DEATH   ] 7ff4ab0ff000-7ff4ab100000 r--p 00024000 08:03 209088411                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.jdk/jdk-17/fastdebug/lib/libjava.so
[  DEATH   ] 7ff4ab100000-7ff4ab101000 rw-p 00025000 08:03 209088411                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.jdk/jdk-17/fastdebug/lib/libjava.so
[  DEATH   ] 7ff4ab101000-7ff4ab102000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4ab102000-7ff4ab11f000 r-xp 00000000 08:03 209088415                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.jdk/jdk-17/fastdebug/lib/libjimage.so
[  DEATH   ] 7ff4ab11f000-7ff4ab121000 r--p 0001c000 08:03 209088415                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.jdk/jdk-17/fastdebug/lib/libjimage.so
[  DEATH   ] 7ff4ab121000-7ff4ab122000 rw-p 0001e000 08:03 209088415                  /opt/mach5/mesos/work_dir/jib-master/install/jdk-17+10-727/linux-x64-debug.jdk/jdk-17/fastdebug/lib/libjimage.so
[  DEATH   ] 7ff4ab122000-7ff4ab127000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4ab128000-7ff4ab129000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4ab129000-7ff4ab131000 rw-s 00000000 08:03 608883363                  /tmp/hsperfdata_mach5-one/24756 (deleted)
[  DEATH   ] 7ff4ab131000-7ff4ab132000 ---p 00000000 00:00 0 
[  DEATH   ] 7ff4ab132000-7ff4ab133000 r--p 00000000 00:00 0 
[  DEATH   ] 7ff4ab133000-7ff4ab134000 rwxp 00000000 00:00 0 
[  DEATH   ] 7ff4ab134000-7ff4ab135000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ff4ab135000-7ff4ab136000 r--p 00021000 08:03 330344                     /usr/lib64/ld-2.17.so
[  DEATH   ] 7ff4ab136000-7ff4ab137000 rw-p 00022000 08:03 330344                     /usr/lib64/ld-2.17.so
[  DEATH   ] 7ff4ab137000-7ff4ab138000 rw-p 00000000 00:00 0 
[  DEATH   ] 7ffd576bf000-7ffd576c3000 ---p 00000000 00:00 0 
[  DEATH   ] 7ffd576c3000-7ffd577bf000 rw-p 00000000 00:00 0                          [stack]
[  DEATH   ] 7ffd577e8000-7ffd577eb000 r--p 00000000 00:00 0                          [vvar]
[  DEATH   ] 7ffd577eb000-7ffd577ec000 r-xp 00000000 00:00 0                          [vdso]
[  DEATH   ] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
[  DEATH   ] 
[  FAILED  ] vmErrorTest.unimplemented1_vm_assert (6528 ms)
[----------] 12 tests from vmErrorTest (9079 ms total)
Comments
Fix Request (11u) I'd like to backport this fix to 11u to prevent this bug from happening there. Original patch does not apply cleanly: - vmError.cpp changed slightly, since JDK-8258479 did some code cleanups for JDK17 - os::abort() ad been unified into os_posix.cpp across all posix platforms with JDK-8263564 for JDK 17. I don't want to backport JDK-8263564 since it causes too much ripples to much. Instead, the patch changes the various os::abort() implementations for all individual OSes, including Solaris. See: https://github.com/openjdk/jdk11u-dev/pull/590
05-11-2021

Before backporting to 16u it would make sense to backport the change that consolidated the code into os_posix.cpp - JDK-8263564
18-03-2021

Fix Request (16u) Backporting this fix prevents this bug from occurring in JDK-16u. The original bug fix patch applied cleanly to file vmError.cpp but not to os_posix.cpp. This is because the changed function (os::abort()) is not consolidated into os_posix.cpp in JDK-16u. After applying the patch to a JDK-16u repo and modifying the appropriate os_<..>.cpp files, the fix was regression tested by running Mach5 tiers 1 and 2 on Linux, Windows, and Mac OS, and running tiers 3-5 on Mac OS.
17-03-2021

Changeset: 8c1112a6 Author: David Holmes <dholmes@openjdk.org> Date: 2021-03-15 23:11:13 +0000 URL: https://git.openjdk.java.net/jdk/commit/8c1112a6
15-03-2021

I've filed JDK-8263567 "gtests don't terminate the VM safely" for the case of non-asserting gtests calling exit(). For the specific issue here of the vm_assert gtests I propose to make two changes to the VM: 1. When core dumps are disabled, os::abort should call ::_exit not ::exit, as the former more closely models the abrupt termination of ::abort() but without the core dump. 2. The race condition when SupressFatalErrorMessages is true will be fixed by placing the check after the atomic set/check of the thread-id. That way only a single thread can trigger the fatal error processing.
15-03-2021

I'm still unclear whether the -XX:+CreateCoreDumpOnCrash actually makes it all the way through to the running of the gtest - Coleen thinks that would cause them to fail regardless of UT. Update: Coleen is correct, enabling core dumps causes these tests to fail. So somehow these extra args are being filtered out at some level of the gtest code. What I can see from the failure reports is that we only seem to get a core file when we hit an assertion failure in the googletest code: [ RUN ] vmErrorTest.assert1_vm_assert /opt/mach5/mesos/work_dir/slaves/983c483a-6907-44e0-ad29-98c7183575e2-S77120/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/eca12897-3c15-4761-8abc-f3a922fe14a3/runs/ad8dd39a-8067-4eb8-9cb1-a951c5c502e2/workspace/open/test/hotspot/gtest/utilities/test_vmerror.cpp:46: Failure Death test: child_vmErrorTest_assert1_() Result: died but not with expected exit code: Terminated by signal 6 (core dumped) Actual msg: [ DEATH ] assert failed: assert(str == NULL) failed: expected null [ DEATH ] [ FATAL ] /opt/mach5/mesos/work_dir/jib-master/install/jpg/infra/builddeps/gtest/1.8.1/gtest-1.8.1.tar.gz/googletest-release-1.8.1/googletest/include/gtest/internal/gtest-port.h:2182:: pthread_key_delete(key_)failed with error 22 so it calls abort() not our gtest wrapper nor the JVM. I don't know exactly why this particular destructor issue arises and I have no intention of trying to dig through the googletest code.
12-03-2021

Hmmm.... as I reported above, there are several test task definitions that pass "-XX:+CreateCoredumpOnCrash" as one of the JVM args options to the test task. test/hotspot/jtreg/gtest/GTestWrapper.java has this: @run main/native GTestWrapper but it may be shielding itself from external options some other way.
11-03-2021

Okay I now have a much clearer picture of what can happen. There are a number of different failure modes and a number of races involved. Consider an "other vm" test that doesn't force an assertion failure or guarantee failure. It loads the JVM normally without suppressing fatal errors or disabling core files. When the test completes it calls exit(0). That is not a clean way to terminate the JVM - we always ensure the JVM exits at a safepoint, and for good reason. This exit(0) call will trigger atexit hooks and global cleanup - e.g. running destructors for static objects. Some parts of the JDK can have such static objects. Now imagine there is another thread running some Java code at the same time that this exit teardown is happening. They are in a race. If the thread doesn't touch any of these static objects then all is fine but if it does it can lead to a crash e.g. A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x0000151ea1c04623, pid=13495, tid=13516 # # JRE version: Java(TM) SE Runtime Environment (17.0) (fastdebug build 17-internal+0-LTS-2021-03-10-0709355.daholme...) # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 17-internal+0-LTS-2021-03-10-0709355.daholme..., mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) # Problematic frame: # C [libjimage.so+0x4623] ImageStrings::find(Endian*, char const*, int*, unsigned int)+0x63 # # Core dump will be written. Default location: /scratch/users/daholme/jdk-dev2.git/build/linux-x64-debug-8261916-ut-gtest/test-support/gtest_MutexRank_monitor_wait_rank_in_order_other_vm_server/core.13495 we then go looking for the hs_err log and core file and are surprised not to find them (or find a truncated hs_err file)! But this crashing thread is still racing with the original exit(0) call, so while it is still trying to create the hs_err file it can be blown away by the process exit. So no core file, and either no hs_err file or else a truncated one. And of course the test reports that it PASSED! There is a similar scenario with the vm_assert related tests, that deliberately crash the VM, but now it is more complex. Those tests enable SuppressFatalErrorMessages and disable core files (though they can be reenabled via the flags for the test job). With core files disabled a fatal error in the VM again calls exit() and we get the same race with the Java thread. But this time because of SuppressFatalErrorMessages we don't see any hs_err related output for the unexpected crash, and we also trigger the shutdown race that I mentioned above. So now we can have two threads trying to shutdown the VM and that can lead to secondary errors/crashes which again are suppressed so we can't see what is happening and what we see or don't see is somewhat random/chaotic and could include the double-free glibc errors seen in some cases. And note that if glibc hits one of those errors it will also call abort() itself and thus (if it wins the race) generate a core file even if the VM would not. I added some logging for when we take the suppressed fatal error path and saw, for example: Suppressed fatal error handling: pid=22038, tid=22038 Suppressed fatal error handling: pid=22038, tid=22058 Suppressed fatal error handling: pid=22038, tid=22038 so two threads and a recursive crash. (But the test still passed!)
11-03-2021

[~dcubed] if -XX:+CreateCoreDumpOnCrash is being passed through to all the gtests and overriding the -XX:-CreateCoreDumpOnCrash that is explicitly set by gtestMain.cpp init_vm, then that will explain some of the observed failure modes in the vm_assert related tests. That is a bug in our gtestMain. We also have a bug with SuppressFatalErrorMessages as I mentioned above because that skips the serialization control on report_and_die and so we can get two threads executing os::abort and all the VM shutdown logic concurrently, which then leads to some of the secondary crashes/failures that we see.
11-03-2021

There are a total of 15 sighting of this failure in the CI. Here's the distribution of the JVM options that are passed to the tasks: $ sort failing_options | uniq -c 1 -Xcomp -XX:+CreateCoredumpOnCrash -ea -esa -XX:CompileThreshold=100 -XX:+UnlockExperimentalVMOptions -server -XX:+TieredCompilation 1 -Xshare:off -showversion 3 -XX:+CheckUnhandledOops 4 -XX:+CreateCoredumpOnCrash -XX:+UseParallelGC -XX:+UseNUMA 3 -XX:+CreateCoredumpOnCrash -XX:+UseSerialGC 1 -XX:+CreateCoredumpOnCrash -XX:+UseZGC 1 -XX:+UseBiasedLocking 1 -XX:-UseCompressedOops On my Linux-X64 server, I had good luck with "-XX:+CreateCoredumpOnCrash -XX:+UseSerialGC" and saw a run where 38 gtests failed in a single run.
10-03-2021

ILW = MMM = P3
23-02-2021

This is weird. Two different gtests fail on the same test machine in the same Tier3 job set. This is the other one: JDK-8261917 gtest/LargePageGtests.java#use-large-pages os.page_size_for_region_with_zero_min_pages_vm_assert failed
17-02-2021