JDK-8253671 : assert(!is_null(v)) failed: narrow klass value can never be zero
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 16
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2020-09-25
  • Updated: 2020-09-28
  • Resolved: 2020-09-28
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 16
16Resolved
Related Reports
Duplicate :  
Relates :  
Relates :  
Relates :  
Description
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/System/Volumes/Data/mesos/work_dir/slaves/4076d11c-c6ed-4d07-84c1-4ab8d55cd975-S242131/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/2b7db768-6f1c-468a-aa1a-4f2fae5c85c7/runs/31b65cc9-fef8-4f9e-8252-c0054dcb8efa/workspace/open/src/hotspot/share/oops/compressedOops.inline.hpp:84), pid=8296, tid=11779
#  assert(!is_null(v)) failed: narrow klass value can never be zero
#
# JRE version: Java(TM) SE Runtime Environment (16.0) (fastdebug build 16-internal+0-2020-09-24-1516275.gerard.ziemski.jdk)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 16-internal+0-2020-09-24-1516275.gerard.ziemski.jdk, mixed mode, sharing, tiered, compressed oops, g1 gc, bsd-amd64)
# Core dump will be written. Default location: core.8296
#
# An error report file with more information is saved as:
# /scratch/mesos/slaves/4076d11c-c6ed-4d07-84c1-4ab8d55cd975-S146820/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/7ffde87a-e831-4bdf-a45b-1f8f60e04a79/runs/7ef5eb9e-4479-4ec4-b162-e08606b465ee/testoutput/test-support/jtreg_open_test_hotspot_jtreg_vmTestbase_nsk_sysdict/scratch/0/hs_err_pid8296.log
Comments
This issue looks like a duplicate of JDK-8253081 caused by JDK-8244778 which the branch in that repo is included without the workaround. From the stack trace in the debugger: * frame #0: 0x00007fff751fcb66 libsystem_kernel.dylib`__pthread_kill + 10\ frame #1: 0x00007fff753c7080 libsystem_pthread.dylib`pthread_kill + 333\ frame #2: 0x00007fff751581ae libsystem_c.dylib`abort + 127\ frame #3: 0x00000001101ab591 libjvm.dylib`os::abort(dump_core=<unavailable>, siginfo=<unavailable>, context=<unavailable>) at os_bsd.cpp:968 [opt]\ frame #4: 0x0000000110483714 libjvm.dylib`VMError::report_and_die(id=-536870912, message=<unavailable>, detail_fmt="narrow klass value can never be zero", detail_args=0x00007000073767f0, thread=0x00007fbb0bd22ff0, pc=0x0000000000000000, siginfo=0x0000000000000000, context=0x0000000000000000, filename="/System/Volumes/Data/mesos/work_dir/slaves/4076d11c-c6ed-4d07-84c1-4ab8d55cd975-S242131/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/2b7db768-6f1c-468a-aa1a-4f2fae5c85c7/runs/31b65cc9-fef8-4f9e-8252-c0054dcb8efa/workspace/open/src/hotspot/share/oops/compressedOops.inline.hpp", lineno=84, size=0) at vmError.cpp:1634 [opt]\ frame #5: 0x000000011048395b libjvm.dylib`VMError::report_and_die(thread=<unavailable>, context=<unavailable>, filename=<unavailable>, lineno=<unavailable>, message=<unavailable>, detail_fmt=<unavailable>, detail_args=0x00007000073767f0) at vmError.cpp:1339 [opt]\ frame #6: 0x000000010f971372 libjvm.dylib`report_vm_error(file="/System/Volumes/Data/mesos/work_dir/slaves/4076d11c-c6ed-4d07-84c1-4ab8d55cd975-S242131/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/2b7db768-6f1c-468a-aa1a-4f2fae5c85c7/runs/31b65cc9-fef8-4f9e-8252-c0054dcb8efa/workspace/open/src/hotspot/share/oops/compressedOops.inline.hpp", line=84, error_msg="assert(!is_null(v)) failed", detail_fmt="narrow klass value can never be zero") at debug.cpp:264 [opt]\ frame #7: 0x000000010faedd33 libjvm.dylib`G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, oop, markWord) [inlined] CompressedKlassPointers::decode_not_null(v=<unavailable>) at compressedOops.inline.hpp:84 [opt]\ frame #8: 0x000000010faedd10 libjvm.dylib`G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, oop, markWord) [inlined] oopDesc::klass(this=0x00000007c3352ba0) const at oop.inline.hpp:93 [opt]\ frame #9: 0x000000010faedcf9 libjvm.dylib`G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, oop, markWord) [inlined] oopDesc::size(this=0x00000007c3352ba0) at oop.inline.hpp:184 [opt]\ frame #10: 0x000000010faedcf9 libjvm.dylib`G1ParScanThreadState::do_copy_to_survivor_space(this=0x00007fbb0ef00e70, region_attr=<unavailable>, old=const oop @ 0x00007000073768c8, old_mark=<unavailable>) at g1ParScanThreadState.cpp:397 [opt]\ frame #11: 0x000000010faf092f libjvm.dylib`void G1ParScanThreadState::do_oop_evac<unsigned int>(this=0x00007fbb0ef00e70, p=0x00000007c409cb54) at g1ParScanThreadState.cpp:183 [opt]\ frame #12: 0x000000010faec79e libjvm.dylib`G1ParScanThreadState::trim_queue_to_threshold(unsigned int) [inlined] G1ParScanThreadState::dispatch_task(this=<unavailable>, task=<unavailable>) at g1ParScanThreadState.cpp:249 [opt]\ frame #13: 0x000000010faec78d libjvm.dylib`G1ParScanThreadState::trim_queue_to_threshold(this=0x00007fbb0ef00e70, threshold=64) at g1ParScanThreadState.cpp:270 [opt]\ frame #14: 0x000000010fae9f3d libjvm.dylib`G1ParScanThreadState::trim_queue_partially(this=0x00007fbb0ef00e70) at g1ParScanThreadState.inline.hpp:51 [opt]\ frame #15: 0x000000010fb02079 libjvm.dylib`G1ScanHRForRegionClosure::scan_memregion(this=0x0000700007376cb8, region_idx_for_card=<unavailable>, mr=<unavailable>) at g1RemSet.cpp:657 [opt]\ frame #16: 0x000000010fb01f7d libjvm.dylib`G1ScanHRForRegionClosure::do_claimed_block(this=0x0000700007376cb8, region_idx_for_card=982, first_card=<unavailable>, num_cards=1) at g1RemSet.cpp:678 [opt]\ frame #17: 0x000000010fb01867 libjvm.dylib`G1ScanHRForRegionClosure::scan_heap_roots(HeapRegion*) [inlined] G1ScanHRForRegionClosure::do_card_block(this=0x0000700007376cb8, region_idx=<unavailable>, first_card=<unavailable>, num_cards=1) at g1RemSet.cpp:685 [opt]\ frame #18: 0x000000010fb017ea libjvm.dylib`G1ScanHRForRegionClosure::scan_heap_roots(this=0x0000700007376cb8, r=<unavailable>) at g1RemSet.cpp:716 [opt]\ frame #19: 0x000000010fb01539 libjvm.dylib`G1ScanHRForRegionClosure::do_heap_region(this=0x0000700007376cb8, r=0x00007fbb0bd29650) at g1RemSet.cpp:758 [opt]\ frame #20: 0x000000010fafec6c libjvm.dylib`G1RemSetScanState::iterate_dirty_regions_from(this=0x00007fbb0bd22cc0, cl=0x0000700007376cb8, worker_id=<unavailable>) at g1RemSet.cpp:403 [opt]\ frame #21: 0x000000010fafeaaa libjvm.dylib`G1RemSet::scan_heap_roots(this=0x00007fbb0bd22c40, pss=0x00007fbb0ef00e70, worker_id=3, scan_phase=ScanHR, objcopy_phase=ObjCopy) at g1RemSet.cpp:776 [opt]\ frame #22: 0x000000010fa893d0 libjvm.dylib`G1EvacuateRegionsTask::scan_roots(this=0x0000700007885318, pss=0x00007fbb0ef00e70, worker_id=3) at g1CollectedHeap.cpp:3825 [opt]\ frame #23: 0x000000010fa892c8 libjvm.dylib`G1EvacuateRegionsBaseTask::work(this=0x0000700007885318, worker_id=3) at g1CollectedHeap.cpp:3812 [opt]\ frame #24: 0x00000001104eadfd libjvm.dylib`GangWorker::run_task(this=0x00007fbb0bd22ff0, data=WorkData @ 0x00007fb2cdef4a20) at workgroup.cpp:269 [opt]\ frame #25: 0x00000001104eaee3 libjvm.dylib`GangWorker::loop(this=0x00007fbb0bd22ff0) at workgroup.cpp:279 [opt]\ frame #26: 0x00000001103e7827 libjvm.dylib`Thread::call_run(this=0x00007fbb0bd22ff0) at thread.cpp:395 [opt]\ Particular frame 16: frame #16: 0x000000010fb01f7d libjvm.dylib`G1ScanHRForRegionClosure::do_claimed_block(this=0x0000700007376cb8, region_idx_for_card=982, first_card=<unavailable>, num_cards=1) at g1RemSet.cpp:678 [opt]\ i.e. we are scanning a card in region 982. From the hs_err file: | 982|0x00000007ffe00000, 0x00000007ffe7c000, 0x00000007fff00000| 48%|OA| |TAMS 0x00000007ffe7c000, 0x00000007ffe00000| Untracked This is an Open Archive region which exactly matches the circumstances for the crashes described in JDK-8253081. Closing as duplicate. Please merge with a later JDK or cherry pick the changes from JDK-8253261.
28-09-2020