Memory is not freed after OutOfMemoryError, thus preventing Derby from
recovering
---------------------------------------------------------------------------------
Key: DERBY-5457
URL: https://issues.apache.org/jira/browse/DERBY-5457
Project: Derby
Issue Type: Bug
Affects Versions: 10.6.2.1
Environment: Derby Server 10.6.2.1 on Windows 7 with Derby JDBC Client
10.6.2.1 connections. Client uses OpenJPA as ORM Provider
Reporter: Dominik Stadler
After some uptime, my Derby Server goes OOM with the following errors:
{quote}
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 - 10.6.2.1 - (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
{quote}
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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira