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

ASF subversion and git services commented on DISPATCH-1246:
-----------------------------------------------------------

Commit 5ef146d159457892ddcdcca533487733c1ab4987 in qpid-dispatch's branch 
refs/heads/master from Ken Giusti
[ https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;h=5ef146d ]

DISPATCH-1246: clean up core link endpoints on shutdown

This patch makes the following changes:

o) the do_cleanup callback is always invoked then the core link
endpoint is released.  The callback is normally called right after
second detach occurs, but it can also be called when the link is freed
without cleanly detaching.

o) moved the module finalization after the cleanup of links and
endpoints on router shutdown.  This ensures that all core link
endpoints used by the modules are cleaned up before the finalization
occurs.

o) if the link has been lost (e.g. connection closed) then the detach
link endpoint callback will not be called. The do_cleanup callback
will be called instead.

This closes #445


> Address Proxy module leaks qdrc_endpoint_t on shutdown
> ------------------------------------------------------
>
>                 Key: DISPATCH-1246
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1246
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Routing Engine
>    Affects Versions: 1.5.0
>            Reporter: Ken Giusti
>            Assignee: Chuck Rolke
>            Priority: Minor
>             Fix For: 1.6.0
>
>
> Running the system_tests_edge_router under valgrind:
> ==21590== 657 (256 direct, 401 indirect) bytes in 4 blocks are definitely 
> lost in loss record 2,886 of 3,532
> ==21590==    at 0x4C3147C: memalign (vg_replace_malloc.c:908)
> ==21590==    by 0x4C31589: posix_memalign (vg_replace_malloc.c:1072)
> ==21590==    by 0x4EA12FF: qd_alloc (alloc_pool.c:181)
> ==21590==    by 0x4E83086: qdrc_endpoint_create_link_CT 
> (core_link_endpoint.c:70)
> ==21590==    by 0x4E92C2C: on_conn_event (addr_proxy.c:237)
> ==21590==    by 0x4E92C2C: on_conn_event (addr_proxy.c:199)
> ==21590==    by 0x4E82E28: qdrc_event_conn_raise (core_events.c:90)
> ==21590==    by 0x4E82E28: qdrc_event_conn_raise (core_events.c:90)
> ==21590==    by 0x4E8123F: qdr_connection_opened_CT (connections.c:1147)
> ==21590==    by 0x4E8C916: router_core_thread (router_core_thread.c:124)
> ==21590==    by 0x5511593: start_thread (in /usr/lib64/libpthread-2.27.so)
> ==21590==    by 0x62A6F4E: clone (in /usr/lib64/libc-2.27.so)
> ==21590== 
> Appears that the endpoint allocated here in addr_proxy.c:
>         //
>         // Attach a receiving link for edge address tracking updates.
>         //
>         ap->tracking_endpoint =
>             qdrc_endpoint_create_link_CT(ap->core, conn, QD_INCOMING,
>                                          
> qdr_terminus_normal(QD_TERMINUS_EDGE_ADDRESS_TRACKING),
>                                          qdr_terminus(0), 
> &ap->endpoint_descriptor, ap);
> is not released when the router is shutdown



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to