OutOfMemory in Server

#1

Hello,

I was getting OOM from ObjectDB Server with 10G Xmx, so I raised to to 15G, but when I do a particular set of actions which require DB access, I still get the OOM. The edited database file has 11GB.

The stacktrace from ODB Server:

[2023-08-03 15:00:36 #64 server] 
java.lang.OutOfMemoryError: Java heap space
        at com.objectdb.o.OBH.e(OBH.java:171)
        at com.objectdb.o.EBW.m(EBW.java:75)
        at com.objectdb.o.BYW.h(BYW.java:713)
        at com.objectdb.o.RCO.a(RCO.java:182)
        at com.objectdb.o.SHN.V(SHN.java:452)
        at com.objectdb.o.SHN.x(SHN.java:148)
        at com.objectdb.o.HND.run(HND.java:134)
        at java.base/java.lang.Thread.run(Thread.java:833)

The stacktrace from ODB Client log:

[2023-08-03 15:00:36 #67 client] 
java.lang.OutOfMemoryError: Java heap space
        at com.objectdb.o.OBH.e(OBH.java:171)
        at com.objectdb.o.EBW.m(EBW.java:75)
        at com.objectdb.o.BYW.h(BYW.java:713)
        at com.objectdb.o.RCO.a(RCO.java:182)
        at com.objectdb.o.SHN.V(SHN.java:452)
        at com.objectdb.o.SHN.x(SHN.java:148)
        at com.objectdb.o.HND.run(HND.java:134)
        at java.base/java.lang.Thread.run(Thread.java:833)

[2023-08-03 15:00:36 #68 *] 
[ObjectDB 2.8.8_05] Unexpected exception (Error 990)
  Generated by OpenJDK 64-Bit Server VM 17.0.7 (on Linux 5.15.0-76-generic).
Please report this error on https://www.objectdb.com/issue
com.objectdb.o.InternalException: java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
        at com.objectdb.o.OBH.e(OBH.java:171)
        at com.objectdb.o.EBW.m(EBW.java:75)
        at com.objectdb.o.BYW.h(BYW.java:713)
        at com.objectdb.o.RCO.a(RCO.java:182)
        at com.objectdb.o.SHN.V(SHN.java:452)
        at com.objectdb.o.SHN.x(SHN.java:148)
        at com.objectdb.o.HND.run(HND.java:134)
        at java.base/java.lang.Thread.run(Thread.java:833)

I was also checking the used heap size chart in JConsole while my test case caused the OOM and the chart did not come close to the 15G limit. It went from 8G to 11G, then the error came.

Can You give some hint, why this OOM happens?

#2

The memory allocation at that specific stack trace could be up to 2GB for a retrieval operation of a large object. 11GB + 2GB < 15GB, so an exception is not expected, unless the 11GB includes only reachable objects but the actual used heap, including unreachable objects that can be released is larger than 11GB.

ObjectDB Support

Reply