You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by "Simon Levesque (Jira)" <se...@james.apache.org> on 2020/01/13 02:42:00 UTC

[jira] [Created] (JAMES-3026) OpenJPA memory leak

Simon Levesque created JAMES-3026:
-------------------------------------

             Summary: OpenJPA memory leak
                 Key: JAMES-3026
                 URL: https://issues.apache.org/jira/browse/JAMES-3026
             Project: James Server
          Issue Type: Bug
          Components: jpa
    Affects Versions: 3.4.0
            Reporter: Simon Levesque


Initially, I got this error after running for about 1.5 days:
{noformat}
21:53:38.455 [smtpserver-executor-82] ERROR o.a.j.p.n.BasicChannelUpstreamHandler - Unable to process request
 java.lang.OutOfMemoryError: GC overhead limit exceeded{noformat}
h1. Try #1

I added more memory with "-Xmx", but that only took a bit more hours to get out of memory.
h1. Try #2

I checked the heap map and found:
{noformat}
38,405 instances of "org.apache.openjpa.kernel.FinalizingBrokerImpl", loaded by "sun.misc.Launcher$AppClassLoader @ 0x6c041ee08" occupy 1,198,987,104 (91.22%) bytes. These instances are referenced from one instance of "java.util.concurrent.ConcurrentHashMap$Node[]", loaded by "<system class loader>"
Keywords
 sun.misc.Launcher$AppClassLoader @ 0x6c041ee08
 java.util.concurrent.ConcurrentHashMap$Node[]
 org.apache.openjpa.kernel.FinalizingBrokerImpl
{noformat}
 
 Which lead me to this article [http://chathuriwimalasena.blogspot.com/2014/06/best-practices-when-using-apache.html] . 

In summary, before closing any connection, we should check if it contains an active transaction and roll it back.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org