[
https://issues.apache.org/jira/browse/DISPATCH-1246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16757699#comment-16757699
]
ASF GitHub Bot commented on DISPATCH-1246:
------------------------------------------
kgiusti commented on pull request #445: DISPATCH-1246: clean up core link
endpoints on shutdown
URL: https://github.com/apache/qpid-dispatch/pull/445#discussion_r252826040
##########
File path: src/router_core/connections.c
##########
@@ -1227,9 +1223,7 @@ static void qdr_connection_closed_CT(qdr_core_t *core,
qdr_action_t *action, boo
qdr_connection_work_t *work = DEQ_HEAD(conn->work_list);
while (work) {
DEQ_REMOVE_HEAD(conn->work_list);
- qdr_terminus_free(work->source);
- qdr_terminus_free(work->target);
- free_qdr_connection_work_t(work);
+ qdr_connection_work_free_CT(work);
Review comment:
@ChugR - I've removed the abort() call. It's possible to get a second
delete event when the connection is dropped with outstanding deletes pending.
Running the system_tests_edge_router testcase under valgrind kept hanging
for me. I traced this to a test that wasn't cleaning up properly (running the
router under valgrind slowed down the test to the point where the bug was
evident). I've pushed the fix to master, you may want to rebase on that.
https://github.com/apache/qpid-dispatch/commit/d10676f8ee6a76fff57f6a62cfa4d583dabc63a9
Other than that I do see leaks for other objects - mostly deliveries - but
no link endpoint leaks.
And I haven't hit the bad memory reference. This appears to be a race, but
it may not be a result of this patch per se. I'm looking a bit at the locking
around the link work lists in any case.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> 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: [email protected]
For additional commands, e-mail: [email protected]