[ 
https://issues.apache.org/jira/browse/PROTON-905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14633911#comment-14633911
 ] 

Ken Giusti commented on PROTON-905:
-----------------------------------

Crash as captured by gsim:

> #0  0x0000003d54635935 in raise () from /lib64/libc.so.6
> #1  0x0000003d546370e8 in abort () from /lib64/libc.so.6
> #2  0x0000003d5462e6a2 in __assert_fail_base () from /lib64/libc.so.6
> #3  0x0000003d5462e752 in __assert_fail () from /lib64/libc.so.6
> #4  0x00007fef7d37a761 in pn_class_free (clazz=0x7fef7d5b4ec0, 
> object=0x3692060) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:120
> #5  0x00007fef7d37aa12 in pn_free (object=<optimized out>) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:265
> #6  0x00007fef7d386000 in pni_free_children (children=0x3690510, 
> freed=0x36905e0) at 
> /home/gordon/projects/proton-git/proton-c/src/engine/engine.c:454
> #7  0x00007fef7d386d09 in pn_session_finalize (object=0x3690180) at 
> /home/gordon/projects/proton-git/proton-c/src/engine/engine.c:932
> #8  0x00007fef7d37a64d in pn_class_decref (clazz=clazz@entry=0x7fef7d5b4e40, 
> object=object@entry=0x3690180) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:97
> #9  0x00007fef7d37a70b in pn_class_free (clazz=0x7fef7d5b4e40, 
> object=0x3690180) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:122
> #10 0x00007fef7d37aa12 in pn_free (object=<optimized out>) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:265
> #11 0x00007fef7d386000 in pni_free_children (children=0x368e9c0, 
> freed=0x368ea90) at 
> /home/gordon/projects/proton-git/proton-c/src/engine/engine.c:454
> #12 0x00007fef7d3866db in pn_connection_finalize (object=0x368e310) at 
> /home/gordon/projects/proton-git/proton-c/src/engine/engine.c:476
> #13 0x00007fef7d37a64d in pn_class_decref (clazz=0x7fef7d5b4dc0, 
> object=object@entry=0x368e310) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:97
> #14 0x00007fef7d37a9d2 in pn_decref (object=object@entry=0x368e310) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:255
> #15 0x00007fef7d38bd08 in pn_transport_unbind 
> (transport=transport@entry=0x36831e0) at 
> /home/gordon/projects/proton-git/proton-c/src/transport/transport.c:733
> #16 0x00007fef7d38bd88 in pn_transport_finalize (object=0x36831e0) at 
> /home/gordon/projects/proton-git/proton-c/src/transport/transport.c:602
> #17 0x00007fef7d37a64d in pn_class_decref (clazz=0x7fef7d5b50c0, 
> object=0x36831e0) at 
> /home/gordon/projects/proton-git/proton-c/src/object/object.c:97


> 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)

Reply via email to