You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Ken Giusti (JIRA)" <ji...@apache.org> on 2015/06/10 15:21:01 UTC

[jira] [Created] (PROTON-905) Long-lived connections leak sessions and links

Ken Giusti created PROTON-905:
---------------------------------

             Summary: Long-lived connections leak sessions and links
                 Key: PROTON-905
                 URL: https://issues.apache.org/jira/browse/PROTON-905
             Project: Qpid Proton
          Issue Type: Bug
          Components: proton-c
    Affects Versions: 0.9.1
            Reporter: Ken Giusti
            Priority: Blocker
             Fix For: 0.10


I found this issue while debugging a crash dump of qpidd.

Long lived connections do not free its sessions/link.

This only applies when NOT using the event model.  The version of qpidd I tested against (0.30) still uses the iterative model.  Point to consider, I don't know why this is the case.

Details:  I have a test script that opens a single connection, then continually creates sessions/links over that connection, sending one message before closing and freeing the sessions/links.  See attached.

Over time the qpidd run time consumes all memory on the system and is killed by OOM.  To be clear, I'm using drain to remove all sent messages - there is no message build up.

On debugging this, I'm finding thousands of session objects on the connections free sessions weakref list.  Every one of those sessions has a refcount of one.

Once the connection is finalized, all session objects are freed.  But until then, freed sessions continue to accumulate indefinitely.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)