0 Replies Latest reply: Apr 30, 2013 12:58 PM by Bernd Eckenfels RSS

    JVM 7U21 (and older) crash on logging exception (StackOverflow, deep recurs

    Bernd Eckenfels
      Hello,

      I have a reproduceable Crash of the Java VM. It happens in JBoss AS7.1.1 when I click in the admin gui on the OSGi console view. The reason for this is a large number of bundles and the fact that (in this version) JBoss OSGi is recursively scan through all of them, which leads to a very deep stack. It seems like the StackOverflowException in this situation is actually thrown and when it is logged (most likely printed?) it is crashing the VM.

      I had seen this quite some time ago, but it still happens with 7.0U21 (on x64 win7 -d64 server). I had opened the Bug#2276442 but it seems not to be accepted because I could not provide a minimum reproducible code.

      This is somewhat annoying, as the hs_err file should contain quite a few hints on the source of the problem, and having a bug where other can search for the same symptoms would actually be helpfull.

      Well, I re-mailed the reviewer with my new error file, but here it is as well:

      # Internal Error (sharedRuntime.cpp:728), pid=13892, tid=5360
      # guarantee(false) failed: missing exception handler
      #
      # JRE version: 7.0_21-b11
      # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.21-b01 mixed mode windows-amd64 compressed oops)
      # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows

      Current thread (0x0000000020f50000): JavaThread "host-controller-connection-threads - 9" [_thread_in_vm, id=5360, stack(0x000000003ab50000,0x000000003ac50000)]

      Stack: [0x000000003ab50000,0x000000003ac50000]
      Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
      v ~ExceptionBlob
      J org.jboss.logmanager.LoggerNode.publish(Lorg/jboss/logmanager/ExtLogRecord;)V
      J org.jboss.logmanager.LoggerNode.publish(Lorg/jboss/logmanager/ExtLogRecord;)V
      J org.jboss.logmanager.LoggerNode.publish(Lorg/jboss/logmanager/ExtLogRecord;)V
      j org.jboss.logmanager.Logger.logRaw(Lorg/jboss/logmanager/ExtLogRecord;)V+81
      J org.jboss.logging.JBossLogManagerLogger.doLogf(Lorg/jboss/logging/Logger$Level;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
      j org.jboss.logging.Logger.logf(Ljava/lang/String;Lorg/jboss/logging/Logger$Level;Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)V+8
      j org.jboss.as.controller.ControllerLogger_$logger.operationFailed(Ljava/lang/Throwable;Lorg/jboss/dmr/ModelNode;Lorg/jboss/dmr/ModelNode;Ljava/lang/String;I)V+58
      j org.jboss.as.controller.AbstractOperationContext.executeStep(Lorg/jboss/as/controller/AbstractOperationContext$Step;)V+237
      j org.jboss.as.controller.AbstractOperationContext.doCompleteStep()V+233
      j org.jboss.as.controller.AbstractOperationContext.completeStep()Lorg/jboss/as/controller/OperationContext$ResultAction;+1
      j org.jboss.as.osgi.parser.BundleRuntimeHandler.handleReadAttribute(Lorg/jboss/as/controller/OperationContext;Lorg/jboss/dmr/ModelNode;)V+284
      j org.jboss.as.osgi.parser.BundleRuntimeHandler.executeRuntimeStep(Lorg/jboss/as/controller/OperationContext;Lorg/jboss/dmr/ModelNode;)V+22
      j org.jboss.as.controller.AbstractRuntimeOnlyHandler$1.execute(Lorg/jboss/as/controller/OperationContext;Lorg/jboss/dmr/ModelNode;)V+6
      j org.jboss.as.controller.AbstractOperationContext.executeStep(Lorg/jboss/as/controller/AbstractOperationContext$Step;)V+33
      j org.jboss.as.controller.AbstractOperationContext.doCompleteStep()V+233
      j org.jboss.as.controller.AbstractOperationContext.completeStep()Lorg/jboss/as/controller/OperationContext$ResultAction;+1
      j org.jboss.as.osgi.parser.BundleRuntimeHandler.handleReadAttribute(Lorg/jboss/as/controller/OperationContext;Lorg/jboss/dmr/ModelNode;)V+284
      j org.jboss.as.osgi.parser.BundleRuntimeHandler.executeRuntimeStep(Lorg/jboss/as/controller/OperationContext;Lorg/jboss/dmr/ModelNode;)V+22
      j org.jboss.as.controller.AbstractRuntimeOnlyHandler$1.execute(Lorg/jboss/as/controller/OperationContext;Lorg/jboss/dmr/ModelNode;)V+6
      j org.jboss.as.controller.AbstractOperationContext.executeStep(Lorg/jboss/as/controller/AbstractOperationContext$Step;)V+33
      j org.jboss.as.controller.AbstractOperationContext.doCompleteStep()V+233
      ... 8000! lines ...
      j org.jboss.as.controller.AbstractOperationContext.doCompleteStep()V+233
      j org.jboss.as.controller.AbstractOperationContext.completeStep()Lorg/jboss/as/controller/OperationContext$ResultAction;+1
      j org.jboss.as.controller.ModelControllerImpl.execute(Lorg/jboss/dmr/ModelNode;Lorg/jboss/as/controller/client/OperationMessageHandler;Lorg/jboss/as/controller/ModelController$OperationTransactionControl;Lorg/jboss/as/controller/client/OperationAttachments;)Lorg/jboss/dmr/ModelNode;+195
      j org.jboss.as.controller.remote.TransactionalModelControllerOperationHandler$ExecuteRequestHandler.doExecute(Lorg/jboss/dmr/ModelNode;ILorg/jboss/as/protocol/mgmt/ManagementRequestContext;)V+88
      j org.jboss.as.controller.remote.TransactionalModelControllerOperationHandler$ExecuteRequestHandler$1.execute(Lorg/jboss/as/protocol/mgmt/ManagementRequestContext;)V+13
      j org.jboss.as.protocol.mgmt.AbstractMessageHandler$2$1.doExecute()V+8
      j org.jboss.as.protocol.mgmt.AbstractMessageHandler$AsyncTaskRunner.run()V+19
      J java.util.concurrent.ThreadPoolExecutor.runWorker(Ljava/util/concurrent/ThreadPoolExecutor$Worker;)V
      j java.util.concurrent.ThreadPoolExecutor$Worker.run()V+5
      j java.lang.Thread.run()V+11
      j org.jboss.threads.JBossThread.run()V+10
      v ~StubRoutines::call_stub

      VM Arguments:
      jvm_args: -D[Server:PE1] -XX:PermSize=100M -XX:MaxPermSize=300M -Xms2G -Xmx4G -Xss1M -Xverify:none -Dsun.java2d.noddraw=true
      -XX:NewRatio=1 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+ExplicitGCInvokesConcurrent -XX:+CMSClassUnloadingEnabled -XX:+UseCompressedOops -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSInitiatingOccupancyOnly -XX:+HeapDumpOnOutOfMemoryError -Xloggc:gc.log -XX:+PrintGCDetails -Djdk.map.althashing.threshold=512 -Djava.io.tmpdir=d:\temp -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
      Launcher Type: SUN_STANDARD

      OS: Windows 7 , 64 bit Build 7601 Service Pack 1
      CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 42 stepping 7, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, ht, tsc, tscinvbit
      Memory: 4k page, physical 16733200k(5827364k free), swap 33464540k(19480584k free)
      vm_info: Java HotSpot(TM) 64-Bit Server VM (23.21-b01) for windows-amd64 JRE (1.7.0_21-b11), built on Apr 4 2013 08:11:28 by "java_re" with unknown MS VC++:1600

      If somebody wants to see the whole error file, let me know.