JDK-6832475 : SafepointALot and GCALotAtAllSafepoints options intermittently crash VM
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs15
  • Priority: P4
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: generic
  • CPU: generic
  • Submitted: 2009-04-21
  • Updated: 2014-04-08
  • Resolved: 2013-03-19
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 9
9Resolved
Related Reports
Relates :  
Description
The following set of options intermittently crashes VM executing SPECjvm98

> -XX:+SafepointALot -XX:+GCALotAtAllSafepoints -XX:+FullGCALot -XX:FullGCALotInterval=1000 -XX:+UseParNewGC 

There are different crashes, some of them are covered by #6820167. 
The first crash is (hs_err_pid18284.log):

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (/BUILD_AREA/jdk7/hotspot/src/share/vm/code/compiledIC.cpp:215), pid=18284, tid=39510414
24
#  Error: assert(!is_call_to_interpreted || (cached_oop() != __null && cached_oop()->is_compiledICHolder()
),"sanity check")
#
# JRE version: 7.0-b54
# Java VM: Java HotSpot(TM) Server VM (15.0-b05-fastdebug mixed mode linux-x86 )
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

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

Current thread (0x08a64000):  VMThread [stack: 0xeb781000,0xeb802000] [id=18294]

Stack: [0xeb781000,0xeb802000],  sp=0xeb800970,  free space=1feeb8009d8k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x9396f5];;  VMError::report(outputStream*)+0x1255
V  [libjvm.so+0x9399a4];;  VMError::report_and_die()+0x194
V  [libjvm.so+0x41e075];;  report_assertion_failure(const char*, int, const char*)+0x65
V  [libjvm.so+0x3c904b];;  CompiledIC::is_call_to_interpreted() const+0x15b
V  [libjvm.so+0x3c9481];;  CompiledIC::verify()+0xb1
V  [libjvm.so+0x76d40d];;  nmethod::verify_interrupt_point(unsigned char*)+0x1ad
V  [libjvm.so+0x76e52c];;  nmethod::verify_scopes()+0xcc
V  [libjvm.so+0x76ee24];;  nmethod::verify()+0x194
V  [libjvm.so+0x3986eb];;  CodeCache::gc_epilogue()+0xab
V  [libjvm.so+0x4eb2dd];;  GenMarkSweep::invoke_at_safepoint(int, ReferenceProcessor*, bool)+0x27d
V  [libjvm.so+0x4f6ea3];;  OneContigSpaceCardGeneration::collect(bool, bool, unsigned, bool)+0x43
V  [libjvm.so+0x4e9047];;  GenCollectedHeap::do_collection(bool, bool, unsigned, bool, int)+0x777
V  [libjvm.so+0x4e98e8];;  GenCollectedHeap::do_full_collection(bool, int)+0x38
V  [libjvm.so+0x93a92f];;  VM_GenCollectFull::doit()+0xaf
V  [libjvm.so+0x955e92];;  VM_Operation::evaluate()+0x82
V  [libjvm.so+0x953f62];;  VMThread::evaluate_operation(VM_Operation*)+0xb2
V  [libjvm.so+0x954420];;  VMThread::loop()+0x210
V  [libjvm.so+0x9549bd];;  VMThread::run()+0xbd
V  [libjvm.so+0x79d8d9];;  _ZL10java_startP6Thread+0xf9
C  [libpthread.so.0+0x545b]

VM_Operation (0xf6fc809c): GenCollectFull, mode: safepoint, requested by thread 0x0894f800

...
-------------------------


The second crash is (hs_err_pid5073.log):
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xf7763ceb, pid=5073, tid=3951238032
#
# JRE version: 7.0-b54
# Java VM: Java HotSpot(TM) Server VM (15.0-b05-fastdebug mixed mode linux-x86 )
# Problematic frame:
# V  [libjvm.so+0x76fceb]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

Current thread (0x09edd000):  VMThread [stack: 0xeb7b1000,0xeb832000] [id=5083]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000011;;

Registers:
EAX=0x00000009, EBX=0xf7ad1ba0, ECX=0xeb830e48, EDX=0x00000011
ESP=0xeb830d24, EBP=0xeb830d48, ESI=0xefd87148, EDI=0xf7b304e0
EIP=0xf7763ceb, CR2=0x00000011, EFLAGS=0x00010296

Top of Stack: (sp=0xeb830d24)
0xeb830d24:   efd87148 f404ef9f f404ef9f eb830e48
0xeb830d34:   eb830e48 00830d58 f7ad1ba0 00000000
0xeb830d44:   eb830e48 eb830e68 f77640fb f404d308
0xeb830d54:   f7b304e0 f7b304e8 f404ef9f 00000000
0xeb830d64:   f404d308 f404d9a0 00000000 f7b30484
0xeb830d74:   f7b304e8 f7a3923c f7a3a2bc efb7f488
0xeb830d84:   09ed61ec efb7f488 00000001 f7a39d98
0xeb830d94:   f79684e4 f79b52cc f7a3923c f7a3a340
Instructions: (pc=0xf7763ceb)
0xf7763cdb:   83 c4 10 84 c0 75 3e 8b 46 04 83 ec 0c 8d 50 08
0xf7763ceb:   8b 40 08 52 ff 90 b8 00 00 00 83 c4 10 84 c0 75
;; f7763cdb 83 c4 10                add    $0x10,%esp
;; f7763cde 84 c0                   test   %al,%al
;; f7763ce0 75 3e                   jne    0xf7763d20
;; f7763ce2 8b 46 04                mov    0x4(%esi),%eax
;; f7763ce5 83 ec 0c                sub    $0xc,%esp
;; f7763ce8 8d 50 08                lea    0x8(%eax),%edx
;; ---------------
;; f7763ceb 8b 40 08                mov    0x8(%eax),%eax
;; f7763cee 52                      push   %edx
;; f7763cef ff 90 b8 00 00 00       call   *0xb8(%eax)
;; f7763cf5 83 c4 10                add    $0x10,%esp
;; f7763cf8 84 c0                   test   %al,%al
;; f7763cfa 75 ff                   jne    0xf7763cfb
;;
Stack: [0xeb7b1000,0xeb832000],  sp=0xeb830d24,  free space=1ffeb830588k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x76fceb];;  nmethod::can_unload(BoolObjectClosure*, OopClosure*, oopDesc**, bool)+0x4b
V  [libjvm.so+0x7700fb];;  nmethod::do_unloading(BoolObjectClosure*, OopClosure*, bool)+0x32b
V  [libjvm.so+0x3987ff];;  CodeCache::do_unloading(BoolObjectClosure*, OopClosure*, bool)+0x5f
V  [libjvm.so+0x4ea1eb];;  GenMarkSweep::mark_sweep_phase1(int, bool)+0x12b
V  [libjvm.so+0x4eb1cd];;  GenMarkSweep::invoke_at_safepoint(int, ReferenceProcessor*, bool)+0x16d
V  [libjvm.so+0x4f6ea3];;  OneContigSpaceCardGeneration::collect(bool, bool, unsigned, bool)+0x43
V  [libjvm.so+0x4e9047];;  GenCollectedHeap::do_collection(bool, bool, unsigned, bool, int)+0x777
V  [libjvm.so+0x4e98e8];;  GenCollectedHeap::do_full_collection(bool, int)+0x38
V  [libjvm.so+0x93a92f];;  VM_GenCollectFull::doit()+0xaf
V  [libjvm.so+0x955e92];;  VM_Operation::evaluate()+0x82
V  [libjvm.so+0x953f62];;  VMThread::evaluate_operation(VM_Operation*)+0xb2
V  [libjvm.so+0x954420];;  VMThread::loop()+0x210
V  [libjvm.so+0x9549bd];;  VMThread::run()+0xbd
V  [libjvm.so+0x79d8d9];;  _ZL10java_startP6Thread+0xf9
C  [libpthread.so.0+0x545b]

VM_Operation (0xf6ff2988): GenCollectFull, mode: safepoint, requested by thread 0x09dc8800


.....
--------------

Comments
I could reproduce asserts with JDK7-b54, but not with JDK7u17 or JDK8.
19-03-2013