[
https://issues.apache.org/jira/browse/PROTON-905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gordon Sim reopened PROTON-905:
---
The change made for this is causing crashes in tests from qpid-cpp that use
proton. I have a further fix proposed: https://reviews.apache.org/r/36509/
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
Assignee: Ken Giusti
Priority: Blocker
Fix For: 0.10
Attachments: test-send.py
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)