Issue #1637: InternalException caused by OOM: Metaspace

Type: Bug ReoprtVersion: 2.5.5Priority: NormalStatus: ClosedReplies: 1
#1

Our java server app using objectDB threw this mistake. Looks like due to OutOfMemory exception, but the app was running with -Xmx12G and before the mistake there was used 1,6G from that heap. Although Metaspace can happen independently on the heap usage I believe.

Stacktrace follows:

[ObjectDB 2.5.5_05] Unexpected exception (Error 990)
  Generated by Java HotSpot(TM) 64-Bit Server VM 1.8.0_05 (on Mac OS X 10.9.5).
Please report this error on http://www.objectdb.com/database/issue/new
com.objectdb.o.InternalException: com.objectdb.o.UserException: Failed to generate dynamic type objectdb.java.util.ArrayList
com.objectdb.o.UserException: Failed to generate dynamic type objectdb.java.util.ArrayList
at com.objectdb.o.MSG.d(MSG.java:74)
at com.objectdb.o.ACL.d(ACL.java:166)
at com.objectdb.o.STL.i(STL.java:131)
at com.objectdb.o.TYM.az(TYM.java:1056)
at com.objectdb.o.MUT.<init>(MUT.java:101)
at com.objectdb.o.CLT.<init>(CLT.java:38)
at com.objectdb.o.MUT.w(MUT.java:322)
at com.objectdb.o.TYS.m(TYS.java:205)
at com.objectdb.o.TYS.l(TYS.java:137)
at com.objectdb.o.TYM.ae(TYM.java:511)
at com.objectdb.o.TYM.<init>(TYM.java:194)
at com.objectdb.o.OMF.ao(OMF.java:802)
at com.objectdb.o.OMF.an(OMF.java:756)
at com.objectdb.o.OMF.am(OMF.java:684)
at com.objectdb.jdo.PMF.getPersistenceManager(PMF.java:559)
at eu.extech.serverImpl.jdo.JDOConnection.persistenceManagerInit(JDOConnection.java:386)

and the next part:

Caused by: java.lang.OutOfMemoryError: Metaspace
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.lang.ClassLoader.defineClass(ClassLoader.java:642)
at com.objectdb.o.ACL.d(ACL.java:155)
at com.objectdb.o.STL.i(STL.java:131)
at com.objectdb.o.TYM.az(TYM.java:1056)
at com.objectdb.o.MUT.<init>(MUT.java:101)
at com.objectdb.o.CLT.<init>(CLT.java:38)
at com.objectdb.o.MUT.w(MUT.java:322)
at com.objectdb.o.TYS.m(TYS.java:205)
at com.objectdb.o.TYS.l(TYS.java:137)
at com.objectdb.o.TYM.ae(TYM.java:511)
at com.objectdb.o.TYM.<init>(TYM.java:194)
at com.objectdb.o.OMF.ao(OMF.java:802)
at com.objectdb.o.OMF.an(OMF.java:756)
at com.objectdb.o.OMF.am(OMF.java:684)
at com.objectdb.jdo.PMF.getPersistenceManager(PMF.java:559)
at eu.extech.serverImpl.jdo.JDOConnection.persistenceManagerInit(JDOConnection.java:386)
#2

The stack trace indicates out of memory situation in Java 8 Metaspace (not the JVM heap) when ObjectDB is trying to generate a dynamic wrapper class for ArrayList (objectdb.java.util.ArrayList)

If the JVM MaxMetaspaceSize parameter is set you may want to try increasing the limit.

In addition, ObjectDB 2.6.0 includes a change in class management that may also solve this exception, so upgrading from 2.5.5_05 to the last build is recommended.

ObjectDB Support

Reply