Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-5457

Memory is not freed after OutOfMemoryError, thus preventing Derby from recovering



    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Duplicate
    • Affects Version/s:
    • Fix Version/s:,
    • Component/s: Network Server
    • Labels:
    • Environment:
      Derby Server on Windows 7 with Derby JDBC Client connections. Client uses OpenJPA as ORM Provider
    • Bug behavior facts:
      Crash, Seen in production


      After some uptime, my Derby Server goes OOM with the following errors:

      2011-10-03 10:35:21.002 GMT : Security manager installed using the Basic server security policy.
      2011-10-03 10:35:23.295 GMT : Apache Derby Network Server - - (999685) started and ready to accept connections on port 11527
      Exception in thread "DRDAConnThread_12" java.lang.OutOfMemoryError: Java heap space
      Exception in thread "NetworkServerThread_2" java.lang.OutOfMemoryError: GC overhead limit exceeded
      Exception in thread "DRDAConnThread_3" java.lang.OutOfMemoryError: GC overhead limit exceeded

      I suspect that I create transactions that are too big, so the OOM is not really of concern to me here untill I have investigated the actual cause.

      However I would expect the Derby Server to recover from this situation as soon as the connection to the Client application is closed, but this does not seem to happen, I have memory dumps from a point in time when the Client was already closed and they show that there are still large instances of RAMTransaction kept in memory.

      I will attach screenshots from MAT which shows the memory usage and the objects keeping this in memory, please adjust handling of OOM so that the memory is freed here.




            • Assignee:
              kristwaa Kristian Waagan
              centic Dominik Stadler
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: