-
Bug
-
Resolution: Fixed
-
P2
-
8u40, 9
-
b83
-
generic
-
generic
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8141938 | emb-9 | Daniel Daugherty | P2 | Resolved | Fixed | team |
assert(ObjectSynchronizer::verify_objmon_isinpool(inf)) failed: monitor is invalid
Here's my gory analysis of the SIGSEGV
(gdb) info threads
17 Thread 0x7f315d865700 (LWP 9161) 0x0000003189a0e1e5 in __lll_unlock_wake () from /lib64/libpthread.so.0
16 Thread 0x7f31a05db700 (LWP 8885) 0x0000003188e17d75 in memset () from /lib64/ld-linux-x86-64.so.2
15 Thread 0x7f31b6c6d700 (LWP 8820) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
14 Thread 0x7f31a03d9700 (LWP 8988) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
13 Thread 0x7f317c28b700 (LWP 9009) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
12 Thread 0x7f317c38c700 (LWP 9007) 0x0000003189a0b7bb in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
11 Thread 0x7f31b6034700 (LWP 8826) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
10 Thread 0x7f31b4115700 (LWP 8888) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
9 Thread 0x7f31a04da700 (LWP 8891) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
8 Thread 0x7f31b6236700 (LWP 8823) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
7 Thread 0x7f31b498b700 (LWP 8847) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
6 Thread 0x7f31a01d7700 (LWP 9002) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
5 Thread 0x7f31b6135700 (LWP 8825) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
4 Thread 0x7f31b6337700 (LWP 8821) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
3 Thread 0x7f317c48d700 (LWP 9003) 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
2 Thread 0x7f31b832d700 (LWP 8815) 0x0000003189a080ad in pthread_join () from /lib64/libpthread.so.0
* 1 Thread 0x7f31715f5700 (LWP 9084) VMError::report_and_die (this=0x7f31714f8160) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/utilities/vmError.cpp:899
Thread 1 (Thread 0x7f31715f5700 (LWP 9084)):
<infinite recursion on report_and_die() calls>
#2729 0x00007f31b7bf21bc in VMError::report_and_die (this=0x7f31715f2360) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/utilities/vmError.cpp:960
#2730 0x00007f31b7bf24fe in crash_handler (sig=11, info=0x7f31715f2530, ucVoid=0x7f31715f2400) at /work/shared/bugs/8047212/src/8047212_exp/src/os/linux/vm/vmError_linux.cpp:106
#2731 <signal handler called>
#2732 0x0000000000000000 in ?? ()
#2733 0x00007f31b799abbe in outputStream::print_cr (this=0x7f31715f3900, format=<value optimized out>) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/utilities/ostream.cpp:139
#2734 0x00007f31b7bf027f in VMError::report (this=0x7f31715f3a50, st=0x7f31715f3900) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/utilities/vmError.cpp:345
#2735 0x00007f31b7bf1d94 in VMError::report_and_die (this=0x7f31715f3a50) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/utilities/vmError.cpp:972
#2736 0x00007f31b79946a2 in JVM_handle_linux_signal (sig=11, info=0x7f31715f3cb0, ucVoid=0x7f31715f3b80, abort_if_unrecognized=1902066128) at /work/shared/bugs/8047212/src/8047212_exp/src/os_cpu/linux_x86/vm/os_linux_x86.cpp:542
#2737 0x00007f31b798694d in signalHandler (sig=11, info=0x7f31715f3cb0, uc=0x7f31715f3b80) at /work/shared/bugs/8047212/src/8047212_exp/src/os/linux/vm/os_linux.cpp:4126
#2738 <signal handler called>
#2739 0x00007f31b796dcce in inc (this=0x7f3134003e18, __the_thread__=0x7f31b02ed000) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/perfData.hpp:425
#2740 ObjectMonitor::EnterI (this=0x7f3134003e18, __the_thread__=0x7f31b02ed000) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/objectMonitor.cpp:609
#2741 0x00007f31b796ec91 in ObjectMonitor::enter (this=0x7f3134003e18, __the_thread__=0x7f31b02ed000) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/objectMonitor.cpp:371
#2742 0x00007f31b7b2bd7f in ObjectSynchronizer::slow_enter (obj=<value optimized out>, lock=0x7f31715f43a8, __the_thread__=0x7f31b02ed000) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/synchronizer.cpp:233
#2743 0x00007f31b7b2c07b in ObjectSynchronizer::fast_enter (obj=..., lock=0x7f31715f43a8, attempt_rebias=<value optimized out>, __the_thread__=0x7f31b02ed000) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/synchronizer.cpp:155
#2744 0x00007f31b75cdf7b in InterpreterRuntime::monitorenter (thread=0x7f31b02ed000, elem=0x7f31715f43a8) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/interpreter/interpreterRuntime.cpp:602
#2745 0x00007f31a1042b1c in ?? ()
#2746 0x00007f31a10429cd in ?? ()
#2747 0x0000000000000003 in ?? ()
#2748 0x0000000097f049d0 in ?? ()
#2749 0x00007f31715f43a8 in ?? ()
#2750 0x00007f31a08322f4 in ?? ()
#2751 0x00007f31715f4420 in ?? ()
#2752 0x00007f31a08a34e8 in ?? ()
#2753 0x0000000000000000 in ?? ()
This frame inflated an ObjectMonitor, associated it with 'obj'
and called ObjectMonitor::enter():
(gdb) frame
#2742 0x00007f31b7b2bd7f in ObjectSynchronizer::slow_enter (
obj=<value optimized out>, lock=0x7f31715f43a8,
__the_thread__=0x7f31b02ed000)
at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/synchronizer.cpp:233
233 ObjectSynchronizer::inflate(THREAD, obj())->enter(THREAD);
Unfortunately, the return value from ObjectSynchronizer::inflate()
isn't stored in a local.
Interesting locals from ObjectSynchronizer::slow_enter:
(gdb) print obj
$15 = <value optimized out>
(gdb) print mark
$13 = (markOopDesc *) 0x7f3134003e1a
(gdb) print *mark
$14 = {<oopDesc> = {_mark = 0x49d0000000000000, _metadata = {_klass =
0xf1f10000000097f0, _compressed_klass = 38896}, static _bs =
0x7f31b0038200}, static cms_free_chunk_pattern = 1,
static size_mask = 34359738367, static size_mask_in_place = 8796093021952}
Let's go down into the ObjectMonitor::enter() call:
(gdb) frame
#2741 0x00007f31b796ec91 in ObjectMonitor::enter (this=0x7f3134003e18,
__the_thread__=0x7f31b02ed000)
at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/objectMonitor.cpp:371
371 EnterI(THREAD);
(gdb) print this
$16 = (ObjectMonitor * const) 0x7f3134003e18
Checkout the 'mark' value and the ObjectMonitor *:
mark == 0x7f3134003e1a
this == 0x7f3134003e18
so the 'mark' value is 4 bytes into the ObjectMonitor.
The 'mark' was fetched out of 'obj' in ObjectSynchronizer::slow_enter:
200 markOop mark = obj->mark();
Here's some field offsets in ObjectMonitor:
(gdb) print &_header
$21 = (volatile markOop *) 0x7f3134003e18
(gdb) print &_object
$20 = (void * volatile *) 0x7f3134003e20
so the 'mark' point half way into the _header field.
Here's the rest of the ObjectMonitor:
(gdb) print *this
$22 = {static SpinCallbackFunction = 0, static SpinCallbackArgument = 0,
_header = 0x1, _object = 0x97f049d0, SharingPad = {
-7.4786357953083842e+240}, _owner = 0x7f31b0331800,
_previous_owner_tid = 0, _recursions = 0, OwnerIsThread = 1,
_cxq = 0x7f31715f4000, _EntryList = 0x0, _succ = 0x0,
_Responsible = 0x7f31b02ed000, _PromptDrain = -235802127,
_Spinner = -235802127, _SpinFreq = 0, _SpinClock = 0, _SpinDuration = 4800,
_SpinState = -1012762419733073423, _count = 1, _waiters = 0, _WaitSet = 0x0,
_WaitSetLock = 0, _QMix = -235802127, FreeNext = 0x0,
StatA = -1012762419733073423, StatsB = -1012762419733073423,
static _sync_ContendedLockAttempts = 0x7f31b000dc10,
static _sync_FutileWakeups = 0x7f31b000dcf0,
static _sync_Parks = 0x7f31b000ddd0,
static _sync_EmptyNotifications = 0x7f31b000dea0,
static _sync_Notifications = 0x7f31b000df80,
static _sync_SlowEnter = 0x7f31b000e060,
static _sync_SlowExit = 0x7f31b000e130,
static _sync_SlowNotify = 0x7f31b000e200,
static _sync_SlowNotifyAll = 0x7f31b000e2d0, static _sync_FailedSpins = 0x0,
static _sync_SuccessfulSpins = 0x7f31b000e490,
static _sync_PrivateA = 0x7f31b000e570,
static _sync_PrivateB = 0x7f31b000e640,
static _sync_MonInCirculation = 0x7f31b000e710,
static _sync_MonScavenged = 0x7f31b000e7f0,
static _sync_Inflations = 0x7f31b000d650,
static _sync_Deflations = 0x7f31b000db40,
static _sync_MonExtant = 0x7f31b000e8d0, static Knob_Verbose = 0,
static Knob_SpinLimit = 5000}
Here's the frame that starts crashing:
(gdb) frame
#2740 ObjectMonitor::EnterI (this=0x7f3134003e18,
__the_thread__=0x7f31b02ed000)
at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/objectMonitor.cpp:609
609 ObjectMonitor::_sync_FutileWakeups->inc();
Here's info about the _sync_FutileWakeups field:
(gdb) print _sync_FutileWakeups
$23 = (PerfCounter *) 0x7f31b000dcf0
gdb) print *_sync_FutileWakeups
$24 = {
<PerfLongVariant> = {<PerfLong> = {<PerfData> = {<CHeapObj<1792u>> = {<AllocatedObj> = {_vptr.AllocatedObj = 0xbabababababababa}, <No data fields>},
_name = 0xbabababababababa <Address 0xbabababababababa out of bounds>,
_v = 3132799674, _u = 3132799674, _on_c_heap = 186,
_flags = 3132799674, _pdep = 0xbabababababababa,
_valuep = 0xbabababababababa}, <No data fields>},
_sampled = 0xbabababababababa,
_sample_helper = 0xbabababababababa}, <No data fields>}
The _sync_FutileWakeups PerfCounter has been freed.
_sync_Parks is the PerfCounter after it:
(gdb) print *_sync_Parks
$25 = {<PerfLongVariant> = {<PerfLong> = {<PerfData> = {<CHeapObj<1792u>> = {<AllocatedObj> = {_vptr.AllocatedObj = 0xbabababababababa}, <No data fields>},
_name = 0xbabababababababa <Address 0xbabababababababa out of bounds>,
_v = 3132799674, _u = 3132799674, _on_c_heap = 186,
_flags = 3132799674, _pdep = 0xbabababababababa,
_valuep = 0xbabababababababa}, <No data fields>},
_sampled = 0xbabababababababa,
_sample_helper = 0xbabababababababa}, <No data fields>}
_sync_ContendedLockAttempts is the PerfCounter before it:
(gdb) print *_sync_ContendedLockAttempts
$26 = {<PerfLongVariant> = {<PerfLong> = {<PerfData> = {<CHeapObj<1792u>> = {<AllocatedObj> = {_vptr.AllocatedObj = 0xbabababababababa}, <No data fields>},
_name = 0xbabababababababa <Address 0xbabababababababa out of bounds>,
_v = 3132799674, _u = 3132799674, _on_c_heap = 186,
_flags = 3132799674, _pdep = 0xbabababababababa,
_valuep = 0xbabababababababa}, <No data fields>},
_sampled = 0xbabababababababa,
_sample_helper = 0xbabababababababa}, <No data fields>}
Looks like all the PerfCounters have been freed which happens
at VM shutdown.
Here's the current JavaThread's info:
(gdb) print *(JavaThread*)Self
$33 = {<Thread> = {<ThreadShadow> = {<CHeapObj<512u>> = {<AllocatedObj> = {
_vptr.AllocatedObj = 0x7f31b8251c50}, <No data fields>},
_pending_exception = {_o = 0x0}, _exception_file = 0x0,
_exception_line = 0}, _real_malloc_address = 0x7f31b02ec9f0,
_SR_lock = 0x7f31b02ee090, _suspend_flags = 0, _num_nested_signal = 1,
_active_handles = 0x7f311c000d90, _free_handle_block = 0x7f3120000910,
_last_handle_mark = 0x7f31715f4590, _oops_do_parity = 0,
_allow_safepoint_count = 0, _allow_allocation_count = 0,
_skip_gcalot = false, _tlab = {<CHeapObj<512u>> = {<AllocatedObj> = {
_vptr.AllocatedObj = 0x7f31b8252090}, <No data fields>},
_start = 0x973d78e8, _top = 0x973d8780, _pf_top = 0x973d7900,
_end = 0x973ffff0, _desired_size = 36700, _refill_waste_limit = 573,
_allocated_before_last_gc = 0, static _max_size = 65535,
static _target_refills = 50, _number_of_refills = 2,
_fast_refill_waste = 0, _slow_refill_waste = 4, _gc_waste = 0,
_slow_allocations = 0,
_allocation_fraction = {<CHeapObj<1280u>> = {<AllocatedObj> = {
_vptr.AllocatedObj = 0x7f31b823d630}, <No data fields>},
_average = 0.999995649, _sample_count = 1, _weight = 35,
_is_old = false, static OLD_THRESHOLD = 100,
_last_sample = 0.999995649}, static _global_stats = 0x7f31b0169d60},
_allocated_bytes = 2016, _trace_data = {_buffer = 0x0, _stackdepth = 0,
_stackframes = 0x0}, _vm_operation_started_count = 0,
_vm_operation_completed_count = 0,
_current_pending_monitor = 0x7f3134003e18,
_current_pending_monitor_is_from_java = true,
_current_waiting_monitor = 0x0, omFreeList = 0x0, omFreeCount = 0,
omFreeProvision = 32, omInUseList = 0x0, omInUseCount = 0,
_visited_for_critical_count = true, _unhandled_oops = 0xf1f1f1f1f1f1f1f1,
_osthread = 0x7f31b02eecc0, _resource_area = 0x7f31b02ed830,
_current_resource_mark = 0x0, _handle_area = 0x7f31b02edcd0,
_metadata_handles = 0x7f31b02ede80,
_stack_base = 0x7f31715f6000 <Address 0x7f31715f6000 out of bounds>,
_stack_size = 1052672, _self_raw_id = 0, _lgrp_id = -1,
_owned_locks = 0x0, _jvmti_env_iteration_count = 0,
_Stalled = 139849302556184, _TypeTag = 11181, _ParkEvent = 0x7f31b02ee200,
_SleepEvent = 0x7f31b02ee400, _MutexEvent = 0x7f31b02ee600,
_MuxEvent = 0x7f31b02ee800, NativeSyncRecursion = -235802127, _OnTrap = 0,
_hashStateW = 345268945, _hashStateX = 842502087, _hashStateY = 34663,
_hashStateZ = 273326509, _schedctl = 0x0, rng = {1237846220, -235802127,
-235802127, -235802127}}, _next = 0x7f31b0294800, _threadObj = {
_o = 0x97ff8a30}, _java_call_counter = 1, _anchor = {
_last_Java_sp = 0x7f31715f43a8, _last_Java_pc = 0x0,
_last_Java_fp = 0x7f31715f43f8}, _entry_point = 0x7f31b76bccc0
<thread_entry(JavaThread*, Thread*)>, _jni_environment = {
functions = 0x7f31b8271b00}, _deopt_mark = 0x0, _must_deopt_id = 0x0,
_deopt_nmethod = 0x0, _vframe_array_head = 0x0, _vframe_array_last = 0x0,
_deferred_locals_updates = 0x0, _callee_target = 0x7f31a09399e0,
_vm_result = {_o = 0x0}, _vm_result_2 = 0x0, _deferred_card_mark = {
_start = 0x0, _word_size = 0}, _monitor_chunks = 0x0,
_special_runtime_exit_condition = JavaThread::_no_async_condition,
_pending_async_exception = {_o = 0x0}, _thread_state = _thread_blocked,
_safepoint_state = 0x7f31b02eec60, _saved_exception_pc = 0x0,
_terminated = JavaThread::_not_terminated, _suspend_equivalent = true,
_in_deopt_handler = 0, _doing_unsafe_access = false,
_do_not_unlock_if_synchronized = false,
_jni_attach_state = JavaThread::_not_attaching_via_jni,
_stack_guard_state = JavaThread::stack_guard_enabled,
_stack_overflow_limit = 0x7f317150e000 "", _exception_oop = {_o = 0x0},
_exception_pc = 0x0, _exception_handler_pc = 0x0,
_is_method_handle_return = 0, _jni_active_critical = 0,
_pending_jni_exception_check_fn = 0x0, _depth_first_number = -235802127,
_popframe_condition = 0, _jmp_ring_index = 0, _jmp_ring = {{_target = 0,
_instruction = 0, _file = 0x0, _line = 0} <repeats 16 times>},
_satb_mark_queue = {<PtrQueue> = {_vptr.PtrQueue = 0x7f31b824fa90,
_qset = 0x7f31b8312d20, _active = false, _buf = 0x0, _index = 0,
_sz = 17433981653976478193, _perm = false,
_lock = 0x0}, <No data fields>},
static _satb_mark_queue_set = {<PtrQueueSet> = {
_vptr.PtrQueueSet = 0x7f31b824fab0, _cbl_mon = 0x7f31b0007140,
_completed_buffers_head = 0x0, _completed_buffers_tail = 0x0,
_n_completed_buffers = 0, _process_completed_threshold = 20,
_process_completed = false, _fl_lock = 0x7f31b0007070,
_buf_free_list = 0x0, _buf_free_list_sz = 0, _fl_owner = 0x7f31b8312d20,
---Type <return> to continue, or q <return> to quit---
_sz = 8192, _all_active = false, _notify_when_complete = false,
_max_completed_queue = -1, _completed_queue_padding = 0},
_closure = 0x0, _par_closures = 0x7f31b0165cc0,
_shared_satb_queue = {<PtrQueue> = {_vptr.PtrQueue = 0x7f31b824ed90,
_qset = 0x7f31b8312d20, _active = false, _buf = 0x0, _index = 0,
_sz = 0, _perm = true, _lock = 0x7f31b0007210}, <No data fields>}},
_dirty_card_queue = {<PtrQueue> = {_vptr.PtrQueue = 0x7f31b8238b90,
_qset = 0x7f31b8312de0, _active = true, _buf = 0x0, _index = 0,
_sz = 17433981653976478193, _perm = false,
_lock = 0x0}, <No data fields>}, static _dirty_card_queue_set =
{<PtrQueueSet> = {_vptr.PtrQueueSet = 0x7f31b8238b70,
_cbl_mon = 0x7f31b00073b0, _completed_buffers_head = 0x0,
_completed_buffers_tail = 0x0, _n_completed_buffers = 0,
_process_completed_threshold = 12, _process_completed = false,
_fl_lock = 0x7f31b00072e0, _buf_free_list = 0x0, _buf_free_list_sz = 0,
_fl_owner = 0x7f31b8312de0, _sz = 2048, _all_active = true,
_notify_when_complete = true, _max_completed_queue = 24,
_completed_queue_padding = 0}, _mut_process_closure = 0x7f31b002dbc0,
_shared_dirty_card_queue = {<PtrQueue> = {_vptr.PtrQueue = 0x7f31b824ed90,
_qset = 0x7f31b8312de0, _active = true, _buf = 0x0, _index = 0,
_sz = 0, _perm = true, _lock = 0x7f31b0007480}, <No data fields>},
_free_ids = 0x7f31b0165d20, _processed_buffers_mut = 0,
_processed_buffers_rs_thread = 0, _cur_par_buffer_node = 0x0}, _recorder =
0x0, _thread_profiler = 0x0, _safepoint_visible = true,
_privileged_stack_top = 0x0, _array_for_gc = 0x0,
_popframe_preserved_args = 0x0, _popframe_preserved_args_size = 0,
_jvmti_thread_state = 0x0, _jvmti_get_loaded_classes_closure = 0x0,
_interp_only_mode = 0, _should_post_on_exceptions_flag = 0, _thread_stat =
0x7f31b02eea20, static _stack_size_at_create = 1048576,
_blocked_on_compilation = false, _parker = 0x7f31b02eeb70,
_cached_monitor_info = 0x0, _claimed_par_id = 4294967295}
And here's the JavaThread's safepoint info:
(gdb) print *((JavaThread*)Self)->_safepoint_state
$36 = {<CHeapObj<1792u>> = {<AllocatedObj> = {
_vptr.AllocatedObj = 0x7f31b824fa70}, <No data fields>},
_at_poll_safepoint = false, _has_called_back = false,
_thread = 0x7f31b02ed000, _type = ThreadSafepointState::_at_safepoint,
_orig_thread_state = _thread_blocked}
Here's the JavaThread that called JVM_Halt with code == 95
which called vm_exit() with code == 95:
src/share/vm/prims/jvm.cpp:
421 JVM_ENTRY_NO_ENV(void, JVM_Halt(jint code))
422 before_exit(thread);
423 vm_exit(code);
424 JVM_END
which means that before_exit() has already been called.
Thread 15 (Thread 0x7f31b6c6d700 (LWP 8820)):
#0 0x0000003189a0b43c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007f31b798bb32 in os::PlatformEvent::park (this=0x7f31b000cd00) at /work/shared/bugs/8047212/src/8047212_exp/src/os/linux/vm/os_linux.cpp:5487
#2 0x00007f31b792bcc0 in ParkCommon (this=0x7f31b0009360, Self=0x7f31b000b800) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/mutex.cpp:414
#3 Monitor::ILock (this=0x7f31b0009360, Self=0x7f31b000b800) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/mutex.cpp:481
#4 0x00007f31b792cab4 in lock_without_safepoint_check (this=0x7f31b0009360) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/mutex.cpp:949
#5 Monitor::lock_without_safepoint_check (this=0x7f31b0009360) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/mutex.cpp:955
#6 0x00007f31b7a83c64 in SafepointSynchronize::block (thread=0x7f31b000b800) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/safepoint.cpp:706
#7 0x00007f31b792dfb1 in transition_and_fence (this=0x7f31b0009500, no_safepoint_check=false, timeout=0, as_suspend_equivalent=false) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/interfaceSupport.hpp:184
#8 trans_and_fence (this=0x7f31b0009500, no_safepoint_check=false, timeout=0, as_suspend_equivalent=false) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/interfaceSupport.hpp:232
#9 ThreadBlockInVM (this=0x7f31b0009500, no_safepoint_check=false, timeout=0, as_suspend_equivalent=false) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/interfaceSupport.hpp:311
#10 Monitor::wait (this=0x7f31b0009500, no_safepoint_check=false, timeout=0, as_suspend_equivalent=false) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/mutex.cpp:1107
#11 0x00007f31b7c1b0f5 in VMThread::execute (op=0x7f31b6c6c3f0) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/vmThread.cpp:615
#12 0x00007f31b75dda45 in vm_exit (code=95) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/java.cpp:597
#13 0x00007f31b76c5c51 in JVM_Halt (code=95) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/prims/jvm.cpp:423
#14 0x00007f31a10258ba in ?? ()
#15 0x00007f31a0adcd88 in ?? ()
#16 0x00007f31a1024ea9 in ?? ()
#17 0x00007f31b6c6c4c0 in ?? ()
#18 0x00007f31a0adc1c0 in ?? ()
#19 0x00007f31b6c6c520 in ?? ()
#20 0x00007f31a0adc708 in ?? ()
#21 0x0000000000000000 in ?? ()
Here's the VMThread and it's exiting with code==95.
We're definitely on our way out the door.
VM_Exit::doit() called exit_globals() which is what freed up
the PerfMemory resources.
Thread 16 (Thread 0x7f31a05db700 (LWP 8885)):
#0 0x0000003188e17d75 in memset () from /lib64/ld-linux-x86-64.so.2
#1 0x0000003188e0e7dd in _dl_sort_fini () from /lib64/ld-linux-x86-64.so.2
#2 0x0000003188e0ead3 in _dl_fini () from /lib64/ld-linux-x86-64.so.2
#3 0x0000003189635da2 in exit () from /lib64/libc.so.6
#4 0x00007f31b75dd907 in vm_direct_exit (code=95) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/java.cpp:616
#5 0x00007f31b7c1dcd5 in VM_Operation::evaluate (this=0x7f31b6c6c3f0) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/vm_operations.cpp:62
#6 0x00007f31b7c1b799 in VMThread::evaluate_operation (this=<value optimized out>, op=0x7f31b6c6c3f0) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/vmThread.cpp:355
#7 0x00007f31b7c1c26e in VMThread::loop (this=0x7f31b022d000) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/vmThread.cpp:475
#8 0x00007f31b7c1c481 in VMThread::run (this=0x7f31b022d000) at /work/shared/bugs/8047212/src/8047212_exp/src/share/vm/runtime/vmThread.cpp:265
#9 0x00007f31b798d7c2 in java_start (thread=0x7f31b022d000) at /work/shared/bugs/8047212/src/8047212_exp/src/os/linux/vm/os_linux.cpp:828
#10 0x0000003189a07851 in start_thread () from /lib64/libpthread.so.0
#11 0x00000031896e890d in clone () from /lib64/libc.so.6
- backported by
-
JDK-8141938 race between VM_Exit and _sync_FutileWakeups->inc()
-
- Resolved
-
- duplicates
-
JDK-8064576 SIGBUS in ObjectMonitor.EnterI
-
- Closed
-
-
JDK-8071535 nightly failure in nsk/jdwp/Event/VM_DEATH/vmdeath002
-
- Closed
-
-
JDK-8057907 Test nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter002 fails with SIGBUS
-
- Closed
-
-
JDK-8059208 SIGSEGV ObjectMonitor::EnterI
-
- Closed
-
-
JDK-8059252 SIBGUS on Sparc: Cannot access memory at address
-
- Closed
-
-
JDK-8062688 nsk/jdi/MonitorContendedEnterRequest/addClassExclusionFilter crashes in ObjectMonitor::EnterI()
-
- Closed
-
-
JDK-8068646 nsk/stress/metaspace/jck60/jck60013 crash with SIGBUS
-
- Closed
-
-
JDK-8071551 SIGSEGV in HeapChangeLogging.java
-
- Closed
-
-
JDK-8048152 Unexpected Signal 10 occurred under user-defined signal handler
-
- Closed
-
-
JDK-8065676 nsk/regression/b4242412.java failed (once) with exit code 11.
-
- Closed
-
-
JDK-8129978 SIGSEGV when parsing command line options
-
- Closed
-
-
JDK-8134566 java/lang/invoke/LFCaching/LFMultiThreadCachingTest.java crashes in monitor synchronization code
-
- Closed
-
- relates to
-
JDK-8348829 Remove ObjectMonitor perf counters
-
- Open
-
-
JDK-8068646 nsk/stress/metaspace/jck60/jck60013 crash with SIGBUS
-
- Closed
-
-
JDK-8071551 SIGSEGV in HeapChangeLogging.java
-
- Closed
-
-
JDK-8129978 SIGSEGV when parsing command line options
-
- Closed
-
-
JDK-8054065 metaspace/stressHierarchy/stressHierarchy003 crash with Segmentation fault
-
- Closed
-
-
JDK-8065676 nsk/regression/b4242412.java failed (once) with exit code 11.
-
- Closed
-
-
JDK-8348402 PerfDataManager stalls shutdown for 1ms
-
- Resolved
-