-
Type:
Bug
-
Resolution: Fixed
-
Priority:
P2
-
Affects Version/s: 27
-
Component/s: hotspot
-
master
We get lots of crashes in hotspot tier1 tests after JDK-8376126:
debug build:
assert(start != nullptr && end != nullptr && start <= end) failed: Start (0x0000000000000000) should be less or equal to end (0x00000000d0400000)
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xe82a43] G1CMRootMemRegions::add(HeapWordImpl**, HeapWordImpl**)+0xf3 (g1ConcurrentMark.cpp:393)
V [libjvm.so+0xe69e2f] G1CollectedHeap::retire_gc_alloc_region(G1HeapRegion*, unsigned long, G1HeapRegionAttr)+0xcf (g1CollectedHeap.cpp:3218)
V [libjvm.so+0xe2310c] G1GCAllocRegion::retire_region(G1HeapRegion*)+0x5c (g1AllocRegion.cpp:338)
V [libjvm.so+0xe25b93] G1AllocRegion::retire_internal(G1HeapRegion*, bool)+0x33 (g1AllocRegion.cpp:108)
V [libjvm.so+0xe25eba] G1GCAllocRegion::retire(bool)+0x7a (g1AllocRegion.cpp:121)
V [libjvm.so+0xe2fa0a] G1Allocator::old_attempt_allocation(unsigned long, unsigned long, unsigned long*)+0x24a (g1AllocRegion.inline.hpp:86)
V [libjvm.so+0xe303a7] G1PLABAllocator::allocate_direct_or_new_plab(G1HeapRegionAttr, unsigned long, bool*, unsigned int)+0x2b7 (g1Allocator.cpp:242)
V [libjvm.so+0xf3333b] G1ParScanThreadState::allocate_copy_slow(G1HeapRegionAttr*, Klass*, unsigned long, unsigned int, unsigned int)+0x6b (g1ParScanThreadState.cpp:383)
V [libjvm.so+0xf373fc] G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, oop, markWord)+0x94c (g1ParScanThreadState.cpp:500)
V [libjvm.so+0xf3da3d] void G1ParScanThreadState::do_oop_evac<narrowOop>(narrowOop*)+0x44d (g1ParScanThreadState.cpp:224)
V [libjvm.so+0xf38413] G1ParScanThreadState::trim_queue_to_threshold(unsigned int)+0x423 (g1ParScanThreadState.cpp:290)
V [libjvm.so+0xf52e69] G1ParScanThreadState::trim_queue_partially()+0x39 (g1ParScanThreadState.inline.hpp:53)
V [libjvm.so+0xf7865d] void G1ParCopyClosure<(G1Barrier)0, true>::do_oop_work<oop>(oop*)+0x17d (g1OopClosures.inline.hpp:226)
V [libjvm.so+0x17bc73c] InterpreterOopMap::iterate_oop(OffsetClosure*) const+0xfc (oopMapCache.cpp:215)
V [libjvm.so+0xe1b502] void frame::oops_interpreted_do<RegisterMap>(OopClosure*, RegisterMap const*, bool) const+0x562 (frame.cpp:957)
V [libjvm.so+0x111db57] JavaThread::oops_do_frames(OopClosure*, NMethodClosure*) [clone .part.0]+0x117 (frame.hpp:485)
V [libjvm.so+0x1d4a379] Thread::oops_do(OopClosure*, NMethodClosure*)+0x89 (thread.cpp:461)
V [libjvm.so+0x1d67da4] Threads::possibly_parallel_oops_do(bool, OopClosure*, NMethodClosure*)+0x1e4 (threads.cpp:1253)
V [libjvm.so+0xf7c8a3] G1RootProcessor::process_java_roots(G1RootClosures*, G1GCPhaseTimes*, unsigned int)+0xd3 (g1RootProcessor.cpp:180)
V [libjvm.so+0xf7d0b8] G1RootProcessor::evacuate_roots(G1ParScanThreadState*, unsigned int)+0x118 (g1RootProcessor.cpp:62)
V [libjvm.so+0xf914d2] G1EvacuateRegionsTask::scan_roots(G1ParScanThreadState*, unsigned int)+0x22 (g1YoungCollector.cpp:743)
V [libjvm.so+0xf91b30] G1EvacuateRegionsBaseTask::work(unsigned int)+0xc0 (g1YoungCollector.cpp:730)
V [libjvm.so+0x1eb7ab8] WorkerThread::run()+0x88 (workerThread.cpp:71)
V [libjvm.so+0x1d4ab76] Thread::call_run()+0xb6 (thread.cpp:243)
V [libjvm.so+0x17e2348] thread_native_entry(Thread*)+0x118 (os_linux.cpp:929)
JavaThread 0x00007f731802f5c0 (nid = 3655801) was being processed
product build:
# SIGSEGV (0xb) at pc=0x00007fea31294518, pid=1725942, tid=1727006
#
# JRE version: OpenJDK Runtime Environment (27.0) (build 27-internal-adhoc.sapmachine.jdk)
# Java VM: OpenJDK 64-Bit Server VM (27-internal-adhoc.sapmachine.jdk, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x894518] G1CMRootRegionScanTask::work(unsigned int)+0x1f8
Reproduction: e.g.
make run-test TEST=test/hotspot/jtreg/compiler/arraycopy
Backing out the change
debug build:
assert(start != nullptr && end != nullptr && start <= end) failed: Start (0x0000000000000000) should be less or equal to end (0x00000000d0400000)
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xe82a43] G1CMRootMemRegions::add(HeapWordImpl**, HeapWordImpl**)+0xf3 (g1ConcurrentMark.cpp:393)
V [libjvm.so+0xe69e2f] G1CollectedHeap::retire_gc_alloc_region(G1HeapRegion*, unsigned long, G1HeapRegionAttr)+0xcf (g1CollectedHeap.cpp:3218)
V [libjvm.so+0xe2310c] G1GCAllocRegion::retire_region(G1HeapRegion*)+0x5c (g1AllocRegion.cpp:338)
V [libjvm.so+0xe25b93] G1AllocRegion::retire_internal(G1HeapRegion*, bool)+0x33 (g1AllocRegion.cpp:108)
V [libjvm.so+0xe25eba] G1GCAllocRegion::retire(bool)+0x7a (g1AllocRegion.cpp:121)
V [libjvm.so+0xe2fa0a] G1Allocator::old_attempt_allocation(unsigned long, unsigned long, unsigned long*)+0x24a (g1AllocRegion.inline.hpp:86)
V [libjvm.so+0xe303a7] G1PLABAllocator::allocate_direct_or_new_plab(G1HeapRegionAttr, unsigned long, bool*, unsigned int)+0x2b7 (g1Allocator.cpp:242)
V [libjvm.so+0xf3333b] G1ParScanThreadState::allocate_copy_slow(G1HeapRegionAttr*, Klass*, unsigned long, unsigned int, unsigned int)+0x6b (g1ParScanThreadState.cpp:383)
V [libjvm.so+0xf373fc] G1ParScanThreadState::do_copy_to_survivor_space(G1HeapRegionAttr, oop, markWord)+0x94c (g1ParScanThreadState.cpp:500)
V [libjvm.so+0xf3da3d] void G1ParScanThreadState::do_oop_evac<narrowOop>(narrowOop*)+0x44d (g1ParScanThreadState.cpp:224)
V [libjvm.so+0xf38413] G1ParScanThreadState::trim_queue_to_threshold(unsigned int)+0x423 (g1ParScanThreadState.cpp:290)
V [libjvm.so+0xf52e69] G1ParScanThreadState::trim_queue_partially()+0x39 (g1ParScanThreadState.inline.hpp:53)
V [libjvm.so+0xf7865d] void G1ParCopyClosure<(G1Barrier)0, true>::do_oop_work<oop>(oop*)+0x17d (g1OopClosures.inline.hpp:226)
V [libjvm.so+0x17bc73c] InterpreterOopMap::iterate_oop(OffsetClosure*) const+0xfc (oopMapCache.cpp:215)
V [libjvm.so+0xe1b502] void frame::oops_interpreted_do<RegisterMap>(OopClosure*, RegisterMap const*, bool) const+0x562 (frame.cpp:957)
V [libjvm.so+0x111db57] JavaThread::oops_do_frames(OopClosure*, NMethodClosure*) [clone .part.0]+0x117 (frame.hpp:485)
V [libjvm.so+0x1d4a379] Thread::oops_do(OopClosure*, NMethodClosure*)+0x89 (thread.cpp:461)
V [libjvm.so+0x1d67da4] Threads::possibly_parallel_oops_do(bool, OopClosure*, NMethodClosure*)+0x1e4 (threads.cpp:1253)
V [libjvm.so+0xf7c8a3] G1RootProcessor::process_java_roots(G1RootClosures*, G1GCPhaseTimes*, unsigned int)+0xd3 (g1RootProcessor.cpp:180)
V [libjvm.so+0xf7d0b8] G1RootProcessor::evacuate_roots(G1ParScanThreadState*, unsigned int)+0x118 (g1RootProcessor.cpp:62)
V [libjvm.so+0xf914d2] G1EvacuateRegionsTask::scan_roots(G1ParScanThreadState*, unsigned int)+0x22 (g1YoungCollector.cpp:743)
V [libjvm.so+0xf91b30] G1EvacuateRegionsBaseTask::work(unsigned int)+0xc0 (g1YoungCollector.cpp:730)
V [libjvm.so+0x1eb7ab8] WorkerThread::run()+0x88 (workerThread.cpp:71)
V [libjvm.so+0x1d4ab76] Thread::call_run()+0xb6 (thread.cpp:243)
V [libjvm.so+0x17e2348] thread_native_entry(Thread*)+0x118 (os_linux.cpp:929)
JavaThread 0x00007f731802f5c0 (nid = 3655801) was being processed
product build:
# SIGSEGV (0xb) at pc=0x00007fea31294518, pid=1725942, tid=1727006
#
# JRE version: OpenJDK Runtime Environment (27.0) (build 27-internal-adhoc.sapmachine.jdk)
# Java VM: OpenJDK 64-Bit Server VM (27-internal-adhoc.sapmachine.jdk, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V [libjvm.so+0x894518] G1CMRootRegionScanTask::work(unsigned int)+0x1f8
Reproduction: e.g.
make run-test TEST=test/hotspot/jtreg/compiler/arraycopy
Backing out the change
- caused by
-
JDK-8376126 G1: Convert remaining volatiles in G1ConcurrentMark to Atomic<T>
-
- Closed
-
- links to
-
Commit(master)
openjdk/jdk/67079b18
-
Review(master)
openjdk/jdk/29535