-
Bug
-
Resolution: Fixed
-
P3
-
None
-
b16
When testing JDK-8240839 (CDS hangs when dumping shared archive for Kitchensink) with a debug VM, the following assert happened:
# Internal Error (src/hotspot/share/memory/archiveUtils.cpp:90), pid=2026, tid=2306
# assert(_relocatable_base <= ptr_value && ptr_value < _relocatable_end) failed: do not point to arbitrary locations!
#
# JRE version: Java(TM) SE Runtime Environment (15.0) (slowdebug build 15-internal+0-adhoc.iklam.open)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 15-internal+0-adhoc.iklam.open, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0xd61411] ArchivePtrBitmapCleaner::do_bit(unsigned long)+0x5f
#
[...]
#5 0x00007ffff653c145 in report_vm_error (file=0x7ffff57b4250 "src/hotspot/share/memory/archiveUtils.cpp", line=90,
error_msg=0x7ffff57b43b8 "assert(_relocatable_base <= ptr_value && ptr_value < _relocatable_end) failed", detail_fmt=0x7ffff57b4390 "do not point to arbitrary locations!")
at src/hotspot/share/utilities/debug.cpp:264
#6 0x00007ffff6270438 in ArchivePtrBitmapCleaner::do_bit (this=0x7fffaf67c260, offset=126369) at src/hotspot/share/memory/archiveUtils.cpp:90
#7 0x00007ffff62e9191 in BitMap::iterate (this=0x7fffaf67c400, blk=0x7fffaf67c260, leftOffset=0, rightOffset=3146938)
at src/hotspot/share/utilities/bitMap.cpp:639
#8 0x00007ffff627026d in BitMap::iterate (this=0x7fffaf67c400, blk=0x7fffaf67c260) at src/hotspot/share/utilities/bitMap.hpp:290
#9 0x00007ffff6270047 in ArchivePtrMarker::compact (relocatable_base=0x800000000 "I\272", relocatable_end=0x801caaa08 "")
at src/hotspot/share/memory/archiveUtils.cpp:108
#10 0x00007ffff6615457 in DynamicArchiveBuilder::relocate_buffer_to_target (this=0x7ffff7fa72c0) at src/hotspot/share/memory/dynamicArchive.cpp:968
#11 0x00007ffff6618aa7 in DynamicArchiveBuilder::doit (this=0x7ffff7fa72c0) at src/hotspot/share/memory/dynamicArchive.cpp:668
#12 0x00007ffff6618ed7 in VM_PopulateDynamicDumpSharedSpace::doit (this=0x7ffff7fa7290) at src/hotspot/share/memory/dynamicArchive.cpp:1059
#13 0x00007ffff6f29dae in VM_Operation::evaluate (this=0x7ffff7fa7290) at src/hotspot/share/runtime/vmOperations.cpp:67
#14 0x00007ffff6f60c0a in VMThread::evaluate_operation (this=0x7ffff05bf800, op=0x7ffff7fa7290) at src/hotspot/share/runtime/vmThread.cpp:374
[...]
(gdb) frame 6
#6 0x00007ffff6270438 in ArchivePtrBitmapCleaner::do_bit (this=0x7fffaf67c260, offset=126369) at src/hotspot/share/memory/archiveUtils.cpp:90
90 assert(_relocatable_base <= ptr_value && ptr_value < _relocatable_end, "do not point to arbitrary locations!");
(gdb) p _relocatable_base
$2 = (address) 0x800000000
(gdb) p _relocatable_end
$3 = (address) 0x801caaa08
(gdb) p ptr_value
$4 = (address) 0x7ffba5534ca0
(gdb) p ptr_loc
$5 = (address *) 0x7fff1054cd08
(gdb) call find(0x7ffba5534ca0)
"Executing find"
{method} {0x00007ffba5534ca0} 'toString' '()Ljava/lang/String;' in 'java/lang/Throwable'
(gdb) x/gx ptr_loc
0x7fff1054cd08: 0x00007ffba5534ca0
(gdb)
0x7fff1054cd10: 0x00000008000077b8
(gdb)
0x7fff1054cd18: 0x0000000800007830
(gdb)
0x7fff1054cd20: 0x00007ffba55344d0
(gdb)
0x7fff1054cd28: 0x00007ffba55345a0
(gdb)
0x7fff1054cd30: 0x00007ffba5534670
(gdb) call find(0x00007ffba55344d0)
"Executing find"
{method} {0x00007ffba55344d0} 'printStackTrace' '()V' in 'java/lang/Throwable'
(gdb) call find(0x00007ffba55345a0)
"Executing find"
{method} {0x00007ffba55345a0} 'printStackTrace' '(Ljava/io/PrintStream;)V' in 'java/lang/Throwable'
# Internal Error (src/hotspot/share/memory/archiveUtils.cpp:90), pid=2026, tid=2306
# assert(_relocatable_base <= ptr_value && ptr_value < _relocatable_end) failed: do not point to arbitrary locations!
#
# JRE version: Java(TM) SE Runtime Environment (15.0) (slowdebug build 15-internal+0-adhoc.iklam.open)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (slowdebug 15-internal+0-adhoc.iklam.open, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0xd61411] ArchivePtrBitmapCleaner::do_bit(unsigned long)+0x5f
#
[...]
#5 0x00007ffff653c145 in report_vm_error (file=0x7ffff57b4250 "src/hotspot/share/memory/archiveUtils.cpp", line=90,
error_msg=0x7ffff57b43b8 "assert(_relocatable_base <= ptr_value && ptr_value < _relocatable_end) failed", detail_fmt=0x7ffff57b4390 "do not point to arbitrary locations!")
at src/hotspot/share/utilities/debug.cpp:264
#6 0x00007ffff6270438 in ArchivePtrBitmapCleaner::do_bit (this=0x7fffaf67c260, offset=126369) at src/hotspot/share/memory/archiveUtils.cpp:90
#7 0x00007ffff62e9191 in BitMap::iterate (this=0x7fffaf67c400, blk=0x7fffaf67c260, leftOffset=0, rightOffset=3146938)
at src/hotspot/share/utilities/bitMap.cpp:639
#8 0x00007ffff627026d in BitMap::iterate (this=0x7fffaf67c400, blk=0x7fffaf67c260) at src/hotspot/share/utilities/bitMap.hpp:290
#9 0x00007ffff6270047 in ArchivePtrMarker::compact (relocatable_base=0x800000000 "I\272", relocatable_end=0x801caaa08 "")
at src/hotspot/share/memory/archiveUtils.cpp:108
#10 0x00007ffff6615457 in DynamicArchiveBuilder::relocate_buffer_to_target (this=0x7ffff7fa72c0) at src/hotspot/share/memory/dynamicArchive.cpp:968
#11 0x00007ffff6618aa7 in DynamicArchiveBuilder::doit (this=0x7ffff7fa72c0) at src/hotspot/share/memory/dynamicArchive.cpp:668
#12 0x00007ffff6618ed7 in VM_PopulateDynamicDumpSharedSpace::doit (this=0x7ffff7fa7290) at src/hotspot/share/memory/dynamicArchive.cpp:1059
#13 0x00007ffff6f29dae in VM_Operation::evaluate (this=0x7ffff7fa7290) at src/hotspot/share/runtime/vmOperations.cpp:67
#14 0x00007ffff6f60c0a in VMThread::evaluate_operation (this=0x7ffff05bf800, op=0x7ffff7fa7290) at src/hotspot/share/runtime/vmThread.cpp:374
[...]
(gdb) frame 6
#6 0x00007ffff6270438 in ArchivePtrBitmapCleaner::do_bit (this=0x7fffaf67c260, offset=126369) at src/hotspot/share/memory/archiveUtils.cpp:90
90 assert(_relocatable_base <= ptr_value && ptr_value < _relocatable_end, "do not point to arbitrary locations!");
(gdb) p _relocatable_base
$2 = (address) 0x800000000
(gdb) p _relocatable_end
$3 = (address) 0x801caaa08
(gdb) p ptr_value
$4 = (address) 0x7ffba5534ca0
(gdb) p ptr_loc
$5 = (address *) 0x7fff1054cd08
(gdb) call find(0x7ffba5534ca0)
"Executing find"
{method} {0x00007ffba5534ca0} 'toString' '()Ljava/lang/String;' in 'java/lang/Throwable'
(gdb) x/gx ptr_loc
0x7fff1054cd08: 0x00007ffba5534ca0
(gdb)
0x7fff1054cd10: 0x00000008000077b8
(gdb)
0x7fff1054cd18: 0x0000000800007830
(gdb)
0x7fff1054cd20: 0x00007ffba55344d0
(gdb)
0x7fff1054cd28: 0x00007ffba55345a0
(gdb)
0x7fff1054cd30: 0x00007ffba5534670
(gdb) call find(0x00007ffba55344d0)
"Executing find"
{method} {0x00007ffba55344d0} 'printStackTrace' '()V' in 'java/lang/Throwable'
(gdb) call find(0x00007ffba55345a0)
"Executing find"
{method} {0x00007ffba55345a0} 'printStackTrace' '(Ljava/io/PrintStream;)V' in 'java/lang/Throwable'