昨天晚上,一台服务器(JBoss 5.1GA,Java(TM)SE Runtime Environment(build 1.6.0_20-b02))
在VMWare的 Linux VM中运行的Java HotSpot(TM)64位服务器虚拟机)突然开始使用100%的cpu.该应用程序是一个运行Seam的相当典型的J2EE业务应用程序,没有什么特别的.当时的负载极低.

我设法得到一个线程转储,在进程被杀死并重新启动之前(应用程序必须可用). JStack在其死锁检测中有例外;除了大多数线程都被阻塞.

这是JVM的错误?我以前没看过.重新启动后,一切正常,就像在应用程序在该服务器上使用的几个月(定期更新)一样.

感谢任何建议.

稍微编辑的线程转储(适合SO的职位大小限制)在下面.我删除了几个相同的线程(从JBoss / Seam内的各种线程池),只剩下堆栈跟踪的顶线.

编辑:全线程转储在http://pastie.org/1083984

[~]$jstack -F 13553
Attaching to process ID 13553,please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 11.3-b02
Deadlock Detection:

java.lang.NullPointerException
        at sun.jvm.hotspot.oops.InstanceKlass.computeSubtypeOf(InstanceKlass.java:426)
        at sun.jvm.hotspot.oops.Klass.isSubtypeOf(Klass.java:137)
        at sun.jvm.hotspot.oops.Oop.isA(Oop.java:92)
        at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:93)
        at sun.jvm.hotspot.runtime.DeadlockDetector.print(DeadlockDetector.java:39)
        at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:52)
        at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
        at sun.jvm.hotspot.tools.JStack.run(JStack.java:60)
        at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
        at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at sun.tools.jstack.JStack.runjstackTool(JStack.java:118)
        at sun.tools.jstack.JStack.main(JStack.java:84)
Can't print deadlocks:null
Thread 26208: (state = BLOCKED)


Thread 25250: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,long) @bci=0 (Interpreted frame)
 - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14,line=158 (Interpreted frame)

Thread 25249: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 21240: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=485 (Interpreted frame)
 - org.apache.tomcat.util.net.JIoEndpoint$Worker.await() @bci=8,line=416 (Interpreted frame)

Thread 21140: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=416 (Interpreted frame)

Thread 21139: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=416 (Interpreted frame)

Thread 21138: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=416 (Interpreted frame)

Thread 19380: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 19377: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 19361: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,long) @bci=0 (Interpreted frame)

Thread 19343: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 19317: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 18995: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=485 (Interpreted frame)

Thread 18986: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=485 (Interpreted frame)

Thread 17659: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 17658: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 17653: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 17631: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 14977: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 14796: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 14609: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 14437: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 14248: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 14232: (state = BLOCKED)
 - java.util.Arrays.copyOf(char[],int) @bci=1,line=2882 (Compiled frame)
 - java.lang.AbstractStringBuilder.expandCapacity(int) @bci=33,line=100 (Compiled frame)

Thread 14040: (state = IN_NATIVE)
 - java.net.PlainSocketImpl.socketAccept(java.net.socketImpl) @bci=0 (Interpreted frame)
 - java.net.PlainSocketImpl.accept(java.net.socketImpl) @bci=7,line=384 (Interpreted frame)

Thread 13858: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.remove(long) @bci=44,line=116 (Compiled frame)

Thread 13815: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=416 (Interpreted frame)

 Thread 13814: (state = IN_NATIVE)
 - java.net.PlainSocketImpl.socketAccept(java.net.socketImpl) @bci=0 (Interpreted frame)

Thread 13813: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=416 (Interpreted frame)


Thread 13812: (state = BLOCKED)
Error occurred during stack walking:
sun.jvm.hotspot.utilities.AssertionFailure: range check
        at sun.jvm.hotspot.utilities.Assert.that(Assert.java:32)
        at sun.jvm.hotspot.runtime.RegisterMap.<init>(RegisterMap.java:109)
        at sun.jvm.hotspot.runtime.x86.X86RegisterMap.<init>(X86RegisterMap.java:39)
        at sun.jvm.hotspot.runtime.x86.X86RegisterMap.clone(X86RegisterMap.java:43)
        at sun.jvm.hotspot.runtime.VFrame.<init>(VFrame.java:37)
        at sun.jvm.hotspot.runtime.JavaVFrame.<init>(JavaVFrame.java:45)
        at sun.jvm.hotspot.runtime.CompiledVFrame.<init>(CompiledVFrame.java:43)
        at sun.jvm.hotspot.runtime.VFrame.newVFrame(VFrame.java:77)
        at sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:129)
        at sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:146)
        at sun.jvm.hotspot.runtime.JavaThread.getLastJavaVFrameDbg(JavaThread.java:231)
        at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:76)
        at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
        at sun.jvm.hotspot.tools.JStack.run(JStack.java:60)
        at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
        at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at sun.tools.jstack.JStack.runjstackTool(JStack.java:118)
        at sun.tools.jstack.JStack.main(JStack.java:84)


Thread 13811: (state = IN_NATIVE)
 - java.net.PlainSocketImpl.socketAccept(java.net.socketImpl) @bci=0 (Interpreted frame)

Thread 13810: (state = IN_NATIVE)
 - java.net.PlainSocketImpl.socketAccept(java.net.socketImpl) @bci=0 (Interpreted frame)

Thread 13809: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=485 (Interpreted frame)
 - org.jboss.jms.client.container.ClientConsumer.getMessage(long) @bci=71,line=866 (Interpreted frame)

Thread 13808: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=866 (Interpreted frame)

Thread 13807: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=485 (Interpreted frame)
 - org.jboss.bootstrap.AbstractServerImpl$LifeThread.run() @bci=11,line=866 (Interpreted frame)

Thread 13806: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 13805: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 13804: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.util.TimerThread.mainLoop() @bci=201,line=509 (Interpreted frame)

Thread 13803: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.util.TimerThread.mainLoop() @bci=201,line=509 (Interpreted frame)

Thread 13802: (state = BLOCKED)
 - java.util.Arrays.copyOfRange(char[],int,int) @bci=40,line=3209 (Compiled frame)
 - java.lang.String.<init>(char[],int) @bci=65,line=216 (Compiled frame)
 - java.lang.StringBuffer.toString() @bci=13,line=585 (Compiled frame)
 - org.apache.log4j.PatternLayout.format(org.apache.log4j.spi.LoggingEvent) @bci=68,line=506 (Compiled frame)

Thread 13784: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.remove(long) @bci=44,line=116 (Compiled frame)
 - org.jboss.el.util.ReferenceCache$ReferenceQueueRunner.run() @bci=1,line=159 (Interpreted frame)

Thread 13753: (state = BLOCKED)
 - java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be imprecise)
 - org.jboss.ejb3.cache.simple.SimpleStatefulCache$SessionTimeoutTask.block() @bci=11,line=210 (Interpreted frame)

Thread 13752: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - org.jboss.resource.connectionmanager.IdleRemover$IdleRemoverRunnable.run() @bci=31,line=167 (Interpreted frame)

Thread 13749: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=485 (Interpreted frame)
 - org.jboss.remoting.transport.socket.ServerThread.run() @bci=209,line=284 (Interpreted frame)

Thread 13734: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.util.TimerThread.mainLoop() @bci=201,line=509 (Interpreted frame)

Thread 13701: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,line=158 (Interpreted frame)

Thread 13700: (state = BLOCKED)
 - java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be imprecise)
 - org.jboss.console.plugins.AOPLister$RefreshPoller.run() @bci=41,line=898 (Interpreted frame)

Thread 13699: (state = BLOCKED)
 - java.lang.Thread.sleep(long) @bci=0 (Compiled frame; information may be imprecise)
 - org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run() @bci=22,line=1590 (Interpreted frame)
 - java.lang.Thread.run() @bci=11,line=619 (Interpreted frame)


Thread 13698: (state = IN_NATIVE)
 - java.net.PlainSocketImpl.socketAccept(java.net.socketImpl) @bci=0 (Interpreted frame)

Thread 13678: (state = BLOCKED)
 - sun.misc.Unsafe.park(boolean,long) @bci=0 (Interpreted frame)
 - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object,long) @bci=20,line=198 (Interpreted frame)

Thread 13554: (state = BLOCKED)

Thread 13560: (state = BLOCKED)

Thread 13559: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.ref.ReferenceQueue.remove(long) @bci=44,line=116 (Compiled frame)
 - java.lang.ref.ReferenceQueue.remove() @bci=2,line=132 (Compiled frame)
 - java.lang.ref.Finalizer$FinalizerThread.run() @bci=3,line=159 (Compiled frame)


Thread 13558: (state = BLOCKED)
 - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
 - java.lang.Object.wait() @bci=2,line=485 (Compiled frame)
 - java.lang.ref.Reference$ReferenceHandler.run() @bci=46,line=116 (Compiled frame)

解决方法

一种可能性是你用完了堆空间.如果用尽堆积空间,JVM将以极大的速度开始燃烧cpu,进行垃圾收集.

java – JVM消耗所有CPU,大多数线程都是BLOCKED. JVM错误?的更多相关文章

  1. ios – React native error – react-native-xcode.sh:line 45:react-native:command not found命令/ bin/sh失败,退出代码127

    尝试构建任何(新的或旧的)项目时出现此错误.我的节点是版本4.2.1,react-native是版本0.1.7.我看过其他有相同问题的人,所以我已经更新了本机的最新版本,但是我仍然无法通过xcode构建任何项目.解决方法要解决此问题,请使用以下步骤:>使用节点版本v4.2.1>cd进入[你的应用]/node_modules/react-native/packager>$sh./packager.s

  2. xamarin.ios – 没有找到ViewController ::.ctor(System.IntPtr)的构造函数

    我有一个问题,我的Monotouch应用程序有时在收到内存警告后才会崩溃.请参见下面的堆栈跟踪.堆栈跟踪是正确的,因为指定的类缺少构造函数获取IntPtr参数.但是这是有意的,因为我在应用程序中根本不使用InterfaceBuilder.那为什么会这样呢?

  3. xcode – XCTest一个元组

    我正在尝试构建一个单元测试:但是Xcode给了我一个错误:无法使用类型的参数列表调用’XCTAssertEqual’是否有不同的方法来测试元组而不提取其成员并单独测试?解决方法XCTAssertEqual要求传递给它的两个参数是Equatable,您可以从方法签名中看到它们.注意,expression1返回T?,T必须是Equatable:但是Swifttuplesaren’tEquatable,所以你不能将它们与XCTAssertEqual一起使用.元组确实有一个==方法–它们只是不符合协议–所以你可以

  4. iOS8 / Swift和MobileVLCKit构建失败

    我正在努力用MobileVLCKit和cocoapods构建我的项目.在不添加任何VLCKit代码的情况下,我在模拟器或设备上构建应用程序时会出错.Pod文件:这是我得到的错误我的部署目标是8.0.我在Debug中将“BuildActiveArchitectureOnly”设置为YES.非常感谢你的帮助!解决方法除了做MukeshThawani所说的话;ChangeC++StandardLibra

  5. swift runtime type

    varv=1.0;println(v.dynamicType);//Swift.Double

  6. runTime(二)

    我们前面已经讲过一篇runtime原理,现在这篇文章主要介绍的是runtime是什么以及怎么用!首先,第一个问题,1》runtime实现的机制是什么,怎么用,一般用于干嘛?在我们平时编写的OC代码中,程序运行过程时,其实最终都是转成了runtime的C语言代码,runtime算是OC的幕后工作者比如说,下面一个创建对象的方法中,举例:OC:第二个问题runtime用来干什么呢??..这是我们学习runtime必须知道的函数!

  7. swift之用runtime实现字典转模型

    6、未完成的事情当类的属性与字典里的key值不一定的时候,出现的情况:字典里面的key是关键字的时候当类的属性是数组,并且数组里面要放自定义类的时候接着完成未完成的事情,首先当字典里的key值与属性不一致的时候,我弄了个映射一、解决类的属性与字典里的key值不一定的情况二、首先我们添加一个方法,这个方法的作用是把字典数组转成模型数组。

  8. swift中方便调试的日志输出

    ///输出日志//////-parametermessage:日志消息///-parameterlogError:错误标记,默认是false,如果是true,发布时仍然会输出///-parameterfile:文件名///-parametermethod:方法名///-parameterline:代码行数funcprintLog{iflogError{print}else{#ifDEBUGprint#endif}}2.当发布的时候,如图讲-DDEBUG删除就可以了

  9. Swift中的打印日志的配置

    Swift中的打印日志的配置

  10. Swift &amp; the Objective-C Runtime

    Swift&theObjective-CRuntimeWrittenbyNateCook—January26th,2015EvenwhenwrittenwithoutasinglelineofObjective-Ccode,everySwiftappexecutesinsidetheObjective-Cruntime,openingupaworldofdynamicdispatchandasso

随机推荐

  1. 使用序列化将对象传递给另一个JVM – 相同的Java版本和jar(都运行我们的应用程序)

    但是想使用纯序列化到bytearray然后进行编码,将它从jvm1中的servlet1发送到jvm2中的servlet2局域网,在两个J2EE应用程序中设置相同的Java版本和jar)基本步骤是:–>将任何Serializable对象序列化为字节数组并生成字符串.确切的代码见下文>Base64输出1.是否需要基于64或可以跳过第2步?

  2. 所有JVM /系统中的Java,Object.hashCode()结果常量?

    Object.hashCode()的输出是否必须在同一个对象的所有JVM实现上相同?例如,如果“test”.hashCode()在1.4上返回1,它是否可能在1.6上返回2.或者如果操作系统不同,或者实例之间存在不同的处理器架构,该怎么办?

  3. Clojure的STM模型可以在多个JVM上运行吗?

    我知道Clojure在多核计算机上运行良好,但我想知道它是否适用于在多台计算机上分布的JVM集群?

  4. java – 加载时出现Eclipse jvm.dll错误

    解决方法按照评论中的要求.您的eclipse版本正在搜索jdk的x86版本.您应该检查您的eclipse是否是64位版本,如果没有,切换到64位jvm.

  5. java – 什么JVM优化导致这些性能结果?

    执行JavaREST服务性能测试我看到一个意外的模式:在每次调用中创建并返回相同值对象的方法比仅返回存储在类或对象字段中的值对象的另一个版本运行得更快.码:字节代码:>内联(更快):getstatic,invokestatic,invokevirtual,areturn>静态归档(较慢):getstatic,areturn>对象字段(较慢):aload,getfield,areturn性能(使用A

  6. java – JVM是否有计划在运行时支持泛型?

    你知道,就像CLR一样.有人甚至承认缺乏运行时通用信息是一个问题,并努力解决它?解决方法Java的设计者选择此解决方案来保持向后兼容性.从那时起,存在更多的Java代码,因此破坏向后兼容性会产生更糟糕的后果.所以我怀疑他们会改变他们的想法.

  7. 如何为多个jvm支持创建单例java类?

    任何想法,如何实现?

  8. java – 强制jvm返回本机内存

    参见英文答案>JVMsendingbackmemorytoOS3个我不时在需要大量内存的eclipse任务中运行.所以jvm在任务运行时吞下大约2-3GB的RAM,没关系.但是一旦jvm占用了那个内存它就不会释放它而且我有一种情况,当堆中使用的内存大约是200mb,总堆大小约为3gb时,这真的是不需要的,因为其他程序正在挨饿.我尝试了Max/MinHeapFreeRatio参数来强制jvm减少未使

  9. java – 获取给定JVM实例中所有当前加载的类的列表

    知道给定JVM实例当前加载哪些类是很方便的.例如,有没有办法让他们通过JVisualVM?

  10. java – JVM Spec,JVM Implementation,JVM Runtime之间的区别

    我读了以下几个字,但我想知道它们之间的差异……JVM规范,JVM实现,JVM运行时解决方法JVMSpec:描述JVM应如何表现的文档.JVM实现:基于JVMSpec的JVM实现.JVM运行时:JVM实现的一个实例.

返回
顶部