users@glassfish.java.net

glassfish hangs - 1GB byte[] unreachable shown in heap dump; StackOverflowError in CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:898) - related?

From: Marc Breslow <marc2112_at_gmail.com>
Date: Thu, 26 Jul 2012 11:58:17 -0400

Hi,

Hoping one of you can help...

My customer's Glassfish server has hung. We got a heap dump and the server
log file before restarting.

In the heap dump, there is a 1GB byte array and the first 1000 bytes
include paths to jar files and package names. It seems to be something
that could have been created by glassfish. The byte array is unreachable
from GC roots and I suspect that the GC may be using all the CPU due to the
large object size?

Also, in the server.log I see some stack traces like this:

Caused by: javax.ejb.EJBException: java.rmi.ServerError: Error occurred in
server thread; nested exception is:
 java.lang.StackOverflowError
at
com.provenir.apps.commercial._EntityFacadeRemote_Wrapper.searchParties(com/provenir/apps/commercial/_EntityFacadeRemote_Wrapper.java)
 ... 45 more
Caused by: java.rmi.ServerError: Error occurred in server thread; nested
exception is:
java.lang.StackOverflowError
 at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.wrapException(Util.java:700)
at
com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:259)
 at
com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
at
com.sun.corba.ee.impl.presentation.rmi.codegen.CodegenStubBase.invoke(CodegenStubBase.java:227)
 at
com.provenir.apps.commercial.__EntityFacadeRemote_Remote_DynamicStub.searchParties(com/provenir/apps/commercial/__EntityFacadeRemote_Remote_DynamicStub.java)
 ... 46 more
Caused by: java.lang.StackOverflowError
at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:898)
 at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:976)
at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:706)
 at
com.sun.corba.ee.impl.encoding.CDROutputObject.write_value(CDROutputObject.java:527)
at
com.sun.corba.ee.impl.io.IIOPOutputStream.writeObjectField(IIOPOutputStream.java:775)
 at
com.sun.corba.ee.impl.io.IIOPOutputStream.outputClassFields(IIOPOutputStream.java:846)
at
com.sun.corba.ee.impl.io.IIOPOutputStream.defaultWriteObjectDelegate(IIOPOutputStream.java:245)
 at
com.sun.corba.ee.impl.io.IIOPOutputStream.outputObject(IIOPOutputStream.java:614)
at
com.sun.corba.ee.impl.io.IIOPOutputStream.simpleWriteObject(IIOPOutputStream.java:196)
 at
com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueInternal(ValueHandlerImpl.java:235)
at
com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueWithVersion(ValueHandlerImpl.java:216)
 at
com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:180)
at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.callWriteValue(CDROutputStream_1_0.java:852)
 at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.writeRMIIIOPValueType(CDROutputStream_1_0.java:837)
at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:962)
 at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:976)
at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:706)
 at
com.sun.corba.ee.impl.encoding.CDROutputObject.write_value(CDROutputObject.java:527)
at
com.sun.corba.ee.impl.io.IIOPOutputStream.writeObjectField(IIOPOutputStream.java:775)
 at
com.sun.corba.ee.impl.io.IIOPOutputStream.outputClassFields(IIOPOutputStream.java:846)
at
com.sun.corba.ee.impl.io.IIOPOutputStream.defaultWriteObjectDelegate(IIOPOutputStream.java:245)
 at
com.sun.corba.ee.impl.io.IIOPOutputStream.outputObject(IIOPOutputStream.java:614)
at
com.sun.corba.ee.impl.io.IIOPOutputStream.simpleWriteObject(IIOPOutputStream.java:196)
 at
com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueInternal(ValueHandlerImpl.java:235)
at
com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValueWithVersion(ValueHandlerImpl.java:216)
 at
com.sun.corba.ee.impl.io.ValueHandlerImpl.writeValue(ValueHandlerImpl.java:180)
at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.callWriteValue(CDROutputStream_1_0.java:852)
 at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.writeRMIIIOPValueType(CDROutputStream_1_0.java:837)
at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:962)
 at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:976)
at
com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_value(CDROutputStream_1_0.java:706)
 at
com.sun.corba.ee.impl.encoding.CDROutputObject.write_value(CDROutputObject.java:527)
at
com.sun.corba.ee.impl.io.IIOPOutputStream.writeObjectField(IIOPOutputStream.java:775)
 at
com.sun.corba.ee.impl.io.IIOPOutputStream.outputClassFields(IIOPOutputStream.java:846)
at
com.sun.corba.ee.impl.io.IIOPOutputStream.defaultWriteObjectDelegate(IIOPOutputStream.java:245)
 at
com.sun.corba.ee.impl.io.IIOPOutputStream.outputObject(IIOPOutputStream.java:614)
at com.sun.corba.ee.impl.|#]