jdk 1.6 Internal Error (verifier.cpp:1524) guarantee(cp->cache() == NULL)

       现在有几个weblogic  10.3服务发布在window上,jdk用的是:

    # JRE version: 6.0_31-b05
    # Java VM: Java HotSpot(TM) 64-Bit Server VM (20.6-b01 mixed mode windows-amd64 compressed oops)

    现象:节点在无任何征兆的情况下停止。

    起初从发回来的日志,根本看不出问题,怀疑是有人手工关闭服务,为了排除这个问题,打开一个CMD窗口,进入域目录下bin目录手动执行startweblogic,如果窗口被关闭,则说明是人工关闭的。

    实验的结果是窗口还在,说明不是人工关闭,weblogic显示日志如下:

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (verifier.cpp:1524), pid=9228, tid=11928
#  guarantee(cp->cache() == NULL) failed: not rewritten yet
#
# JRE version: 6.0_31-b05
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.6-b01 mixed mode windows-amd64
compressed oops)
# An error report file with more information is saved as:
# E:\bea\bea\user_projects\domains\****\hs_err_pid9228.log

   拿回hs_err_pid9228.log分析,是jdk的一个bug. 在metalink上找到问题,要设置-XX:ReservedCodeCacheSize的大小,由于此jdk设置内存为-Xms6144m -Xmx6144m -XX:MaxPermSize=2048m,于是将-XX:ReservedCodeCacheSize设置为1024m,文档说是要反复的实验。

   -XX:ReservedCodeCacheSize意思是设置代码缓存的最大值,编译时用。Solaris 64-bit, amd64, -server x86: 48m, 1.5.0_06之前, Solaris 64-bit amd64: 1024m, 其他默认32m。

技术分享转到底部 技术分享

技术分享

In this Document

Symptoms
  Cause
  Solution


APPLIES TO:

Oracle Business Process Management Suite - Version 11.1.1.6.0 and later
Information in this document applies to any platform.

SYMPTOMS

When attempting to use SOA\BPM 11g, the following error occurs:

# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (verifier.cpp:1524), pid=6063, tid=1141598528
#  guarantee(cp->cache() == NULL) failed: not rewritten yet
#
# JRE version: 6.0_32-b05
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.7-b02 mixed mode linux-amd64 compressed oops)
# 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 (0x00007f1ec01e7000):  JavaThread "[ACTIVE] ExecuteThread: ‘4‘ for queue: ‘weblogic.kernel.Default (self-tuning)‘" daemon [_thread_in_vm, id=6245, stack(0x0000000043fb6000,0x00000000440b7000)]

Stack: [0x0000000043fb6000,0x00000000440b7000],  sp=0x00000000440b2f30,  free space=1011k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x85f675]  VMError::report_and_die()+0x265
V  [libjvm.so+0x3e4b86]  report_vm_error(char const*, int, char const*, char const*)+0x56
V  [libjvm.so+0x8537c4]  ClassVerifier::verify_cp_type(int, constantPoolHandle, unsigned, Thread*)+0x54
V  [libjvm.so+0x855306]  ClassVerifier::verify_invoke_instructions(RawBytecodeStream*, unsigned, StackMapFrame*, bool*, VerificationType, constantPoolHandle, Thread*)+0x96
V  [libjvm.so+0x8521e4]  ClassVerifier::verify_method(methodHandle, Thread*)+0x3764
V  [libjvm.so+0x84e964]  ClassVerifier::verify_class(Thread*)+0x1a4
V  [libjvm.so+0x84dd4c]  Verifier::verify(instanceKlassHandle, Verifier::Mode, bool, Thread*)+0x26c
V  [libjvm.so+0x4ad32a]  instanceKlass::verify_code(instanceKlassHandle, bool, Thread*)+0x2a
V  [libjvm.so+0x4ada7c]  instanceKlass::link_class_impl(instanceKlassHandle, bool, Thread*)+0x64c
V  [libjvm.so+0x4ad38c]  instanceKlass::link_class(Thread*)+0x4c
V  [libjvm.so+0x4adc60]  instanceKlass::initialize_impl(instanceKlassHandle, Thread*)+0x30
V  [libjvm.so+0x4ad2ea]  instanceKlass::initialize(Thread*)+0x6a
V  [libjvm.so+0x4d47cc]  InterpreterRuntime::_new(JavaThread*, constantPoolOopDesc*, int)+0xbc
j  oracle.bpel.services.rules.management.instance.InstanceTrackerFactory.getInstanceTracker()Loracle/bpel/services/rules/management/instance/InstanceTracker;+21
j  oracle.bpel.services.rules.fabric.BusinessRulesServiceEngineFacades.getFaults(Loracle/soa/management/util/FaultFilter;)Ljava/util/List;+89
j  oracle.bpel.services.rules.fabric.BusinessRulesServiceEngine.getFaults(Loracle/soa/management/util/FaultFilter;)Ljava/util/List;+5
j  oracle.soa.management.internal.ejb.impl.FacadeFinderBeanImpl.getFaults(Loracle/soa/management/util/FaultFilter;)Ljava/util/List;+104
v  ~StubRoutines::call_stub
V  [libjvm.so+0x4dff90]  JavaCalls::call_helper(JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x1e0
V  [libjvm.so+0x710259]  os::os_exception_wrapper(void (*)(JavaValue*, methodHandle*, JavaCallArguments*, Thread*), JavaValue*, methodHandle*, JavaCallArguments*, Thread*)+0x19
V  [libjvm.so+0x4dfda5]  JavaCalls::call(JavaValue*, methodHandle, JavaCallArguments*, Thread*)+0x25
V  [libjvm.so+0x76e099]  Reflection::invoke(instanceKlassHandle, methodHandle, Handle, bool, objArrayHandle, BasicType, objArrayHandle, bool, Thread*)+0x519
V  [libjvm.so+0x7722af]  Reflection::invoke_method(oopDesc*, Handle, objArrayHandle, Thread*)+0x11f
V  [libjvm.so+0x56e12e]  JVM_InvokeMethod+0x21e
C  [libjava.so+0x19685]  Java_sun_reflect_NativeMethodAccessorImpl_invoke0+0x15

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  oracle.bpel.services.rules.management.instance.InstanceTrackerFactory.getInstanceTracker()Loracle/bpel/services/rules/management/instance/InstanceTracker;+21
j  oracle.bpel.services.rules.fabric.BusinessRulesServiceEngineFacades.getFaults(Loracle/soa/management/util/FaultFilter;)Ljava/util/List;+89
j  oracle.bpel.services.rules.fabric.BusinessRulesServiceEngine.getFaults(Loracle/soa/management/util/FaultFilter;)Ljava/util/List;+5
j  oracle.soa.management.internal.ejb.impl.FacadeFinderBeanImpl.getFaults(Loracle/soa/management/util/FaultFilter;)Ljava/util/".

CAUSE

This is explained in the following bug: http://bugs.java.com/view_bug.do?bug_id=7033141 .

SOLUTION

To implement an immediate alternative solution, please execute the following steps:

1. Increase the current value of ‘-XX:ReservedCodeCacheSize=128m‘ to 256 and if the reported issue still persists then try with 512.
2. Retest the issue.
3. Migrate the solution as appropriate to other environments.


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。