JDK-8246468 : Crashes in parallel gc in MoveAndUpdateClosure::do_addr()
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 15,16
  • Priority: P2
  • Status: Resolved
  • Resolution: Cannot Reproduce
  • Submitted: 2020-06-03
  • Updated: 2021-01-16
  • Resolved: 2021-01-16
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
Relates :  
Relates :  
Relates :  
Description
Splitting out reports for crashes in parallel gc in JDK-8245025 which seem unrelated.

Original report from [~dcubed]:

I'm seeing a couple of test failures in an Adhoc test job for 8153224. These are
assertion failures in MoveAndUpdateClosure::do_addr() so this bug caught my eye.

Spotted in dcubed-8153224_mach5_for_jdk15-20200520-1350-11202231:

vmTestbase/vm/gc/concurrent/lp60yp0rp30mr0st300/TestDescription.java

Here's a snippet from the log file:

To re-run test with same seed value please add "-Djdk.test.lib.random.seed=716186983589641768" to command line.
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/psParallelCompact.cpp:3271
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error ([...]/workspace/open/src/hotspot/share/gc/parallel/psParallelCompact.cpp:3271), pid=32688, tid=32706
# assert(PSParallelCompact::summary_data().calc_new_pointer(source(), compaction_manager()) == destination()) failed: wrong destination
#
# JRE version: Java(TM) SE Runtime Environment (15.0) (fastdebug build 15-internal+0-2020-05-20-0119158.daniel.daugherty.8153224mach5forjdk15)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 15-internal+0-2020-05-20-0119158.daniel.daugherty.8153224mach5forjdk15, mixed mode, sharing, tiered, compressed oops, parallel gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1470371] MoveAndUpdateClosure::do_addr(HeapWordImpl**, unsigned long)+0x181
#
#
#[...]
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
----------System.err:(0/0)----------

Here's the crashing thread's stack:

--------------- T H R E A D ---------------

Current thread (0x00007f0af0001000): GCTaskThread "GC Thread#1" [stack: 0x00007f0af4f09000,0x00007f0af5009000] [id=32706]

Stack: [0x00007f0af4f09000,0x00007f0af5009000], sp=0x00007f0af5007b20, free space=1018k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1470371] MoveAndUpdateClosure::do_addr(HeapWordImpl**, unsigned long)+0x181
V [libjvm.so+0x13dd996] ParMarkBitMap::iterate(ParMarkBitMapClosure*, unsigned long, unsigned long) const+0xf6
V [libjvm.so+0x147472e] PSParallelCompact::fill_region(ParCompactionManager*, MoveAndUpdateClosure&, unsigned long)+0x2ae
V [libjvm.so+0x1474d6d] PSParallelCompact::fill_and_update_shadow_region(ParCompactionManager*, unsigned long)+0x15d
V [libjvm.so+0x147c98a] UpdateDensePrefixAndCompactionTask::work(unsigned int)+0x77a
V [libjvm.so+0x17ecdf4] GangWorker::run_task(WorkData)+0x84
V [libjvm.so+0x17ecf1e] GangWorker::loop()+0x2e
V [libjvm.so+0x16abe70] Thread::call_run()+0x100
V [libjvm.so+0x13b0f76] thread_native_entry(Thread*)+0x116


vmTestbase/vm/gc/concurrent/lp30yp0rp30mr30st0t1/TestDescription.java

Here's a snippet from the log file:

To re-run test with same seed value please add "-Djdk.test.lib.random.seed=-7006371182244205045" to command line.
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/psParallelCompact.cpp:3271
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error (.../workspace/open/src/hotspot/share/gc/parallel/psParallelCompact.cpp:3271), pid=29788, tid=29806
# assert(PSParallelCompact::summary_data().calc_new_pointer(source(), compaction_manager()) == destination()) failed: wrong destination
#
# JRE version: Java(TM) SE Runtime Environment (15.0) (fastdebug build 15-internal+0-2020-05-20-0119158.daniel.daugherty.8153224mach5forjdk15)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 15-internal+0-2020-05-20-0119158.daniel.daugherty.8153224mach5forjdk15, mixed mode, sharing, tiered, compressed oops, parallel gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x1470371] MoveAndUpdateClosure::do_addr(HeapWordImpl**, unsigned long)+0x181
#
[...]
#
# If you would like to submit a bug report, please visit:
# https://bugreport.java.com/bugreport/crash.jsp
#
----------System.err:(0/0)----------

Here's the crashing thread's stack:

--------------- T H R E A D ---------------

Current thread (0x00007f3b68001000): GCTaskThread "GC Thread#1" [stack: 0x00007f3b47bfd000,0x00007f3b47cfd000] [id=29806]

Stack: [0x00007f3b47bfd000,0x00007f3b47cfd000], sp=0x00007f3b47cfbaf0, free space=1018k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x1470371] MoveAndUpdateClosure::do_addr(HeapWordImpl**, unsigned long)+0x181
V [libjvm.so+0x13dd996] ParMarkBitMap::iterate(ParMarkBitMapClosure*, unsigned long, unsigned long) const+0xf6
V [libjvm.so+0x147472e] PSParallelCompact::fill_region(ParCompactionManager*, MoveAndUpdateClosure&, unsigned long)+0x2ae
V [libjvm.so+0x1474ac3] PSParallelCompact::fill_and_update_region(ParCompactionManager*, unsigned long)+0x113
V [libjvm.so+0x1456adb] ParCompactionManager::drain_region_stacks()+0x1eb
V [libjvm.so+0x147c992] UpdateDensePrefixAndCompactionTask::work(unsigned int)+0x782
V [libjvm.so+0x17ecdf4] GangWorker::run_task(WorkData)+0x84
V [libjvm.so+0x17ecf1e] GangWorker::loop()+0x2e
V [libjvm.so+0x16abe70] Thread::call_run()+0x100
V [libjvm.so+0x13b0f76] thread_native_entry(Thread*)+0x116 
Comments
Closing as not reproducible. JDK-8256574 and JDK-8246468 appear to have been a result of faulty machines used in our testing, and have not reproduced since those machines were taken out of service.
16-01-2021

Host machine has been removed already.
02-12-2020

Have not seen any complaints about my plan to close this bug as "Cannot Reproduce" so I'm closing it.
11-06-2020

machine is suspect to be faulty
10-06-2020

Occurrences in various private builds but also one in CI.
08-06-2020

This crash was seen once in Adhoc testing of the fix for JDK-8153224. That fix has evolved since this crash was seen and it's possible that the crash was due to code in JDK-8153224 that has since changed. It is also possible that the crash was due to other code in the repo that has since changed. Closing this bug as "Cannot Reproduce". If this failure mode is seen again, please reopen this bug.
03-06-2020