You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Pavel Moravec (JIRA)" <ji...@apache.org> on 2014/03/27 12:50:14 UTC

[jira] [Commented] (DISPATCH-37) Various memory leaks

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

Pavel Moravec commented on DISPATCH-37:
---------------------------------------

One particular memory leak: in setup_incoming_link:

Single dispatch router running and connecting+disconnecting any link from a client. valgrind logs:

==4570== 64 bytes in 2 blocks are definitely lost in loss record 890 of 2,662
==4570==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4570==    by 0x4C1FD6E: qd_alloc (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2D821: new_qd_router_link_t (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C3031D: router_incoming_link_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C238FF: setup_incoming_link (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23CDE: process_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2407A: handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35103: process_connector (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35662: thread_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x3D6B607C52: start_thread (pthread_create.c:308)
==4570==    by 0x3D6B2F5DBC: clone (clone.S:113)

==4570== 3,672 bytes in 54 blocks are possibly lost in loss record 2,512 of 2,662
==4570==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4570==    by 0x4C201BC: qd_alloc (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23599: new_qd_link_t (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2387D: setup_incoming_link (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23CDE: process_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2407A: handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35103: process_connector (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35662: thread_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C3621D: qd_server_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x401317: main (in /home/pmoravec/dispatch-trunk/trunk/BLD/router/qdrouterd)

==4570== 4,692 (4,624 direct, 68 indirect) bytes in 68 blocks are definitely lost in loss record 2,535 of 2,662
==4570==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4570==    by 0x4C201BC: qd_alloc (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23599: new_qd_link_t (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2387D: setup_incoming_link (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23CDE: process_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2407A: handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35103: process_connector (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35662: thread_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C3621D: qd_server_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x401317: main (in /home/pmoravec/dispatch-trunk/trunk/BLD/router/qdrouterd)

==4570== 7,816 (64 direct, 7,752 indirect) bytes in 2 blocks are definitely lost in loss record 2,576 of 2,662
==4570==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4570==    by 0x4C1FD6E: qd_alloc (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23599: new_qd_link_t (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2387D: setup_incoming_link (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23CDE: process_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2407A: handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35103: process_connector (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35662: thread_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x3D6B607C52: start_thread (pthread_create.c:308)
==4570==    by 0x3D6B2F5DBC: clone (clone.S:113)

==4570== 8,480 (32 direct, 8,448 indirect) bytes in 1 blocks are definitely lost in loss record 2,588 of 2,662
==4570==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4570==    by 0x4C1FD6E: qd_alloc (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C26A8D: new_qd_field_iterator_t (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2702B: qd_field_iterator_string (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23808: setup_incoming_link (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23CDE: process_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2407A: handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35103: process_connector (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35662: thread_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x3D6B607C52: start_thread (pthread_create.c:308)
==4570==    by 0x3D6B2F5DBC: clone (clone.S:113)

==4570== 8,636 bytes in 127 blocks are possibly lost in loss record 2,590 of 2,662
==4570==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4570==    by 0x4C201BC: qd_alloc (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23599: new_qd_link_t (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2387D: setup_incoming_link (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23CDE: process_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2407A: handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35103: process_connector (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35662: thread_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x3D6B607C52: start_thread (pthread_create.c:308)
==4570==    by 0x3D6B2F5DBC: clone (clone.S:113)

==4570== 18,180 bytes in 101 blocks are possibly lost in loss record 2,630 of 2,662
==4570==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4570==    by 0x4C201BC: qd_alloc (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2D821: new_qd_router_link_t (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C3031D: router_incoming_link_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C238FF: setup_incoming_link (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23CDE: process_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2407A: handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35103: process_connector (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35662: thread_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x3D6B607C52: start_thread (pthread_create.c:308)
==4570==    by 0x3D6B2F5DBC: clone (clone.S:113)

==4570== 24,004 (23,936 direct, 68 indirect) bytes in 352 blocks are definitely lost in loss record 2,640 of 2,662
==4570==    at 0x4A06409: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==4570==    by 0x4C201BC: qd_alloc (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23599: new_qd_link_t (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2387D: setup_incoming_link (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C23CDE: process_handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C2407A: handler (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35103: process_connector (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x4C35662: thread_run (in /home/pmoravec/dispatch-trunk/trunk/BLD/libqpid-dispatch.so.0.1)
==4570==    by 0x3D6B607C52: start_thread (pthread_create.c:308)
==4570==    by 0x3D6B2F5DBC: clone (clone.S:113)



> Various memory leaks
> --------------------
>
>                 Key: DISPATCH-37
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-37
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Container
>    Affects Versions: 0.1
>            Reporter: Pavel Moravec
>         Attachments: out01.log
>
>
> Valgrind reports various memory leaks after very basic usage of Dispatch router. For basic scenario, have 2 routers A<->B and send messages from bouncing producer connected to A to a bouncing consumer connected to B. Attached is valgrind output for that.
> Some particular memory leaks to be commented later on.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

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