Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-1215

several memory leaks in edge-router soak test

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 1.8.0
    • Component/s: None
    • Labels:
      None

      Description

      Using recent master code trees (dispatch and proton)...

      The test sets up a simple 3-linear router network, A-B-C, and attaches 100 edge routers to A. It then kills one edge router, replaces it, and repeats that kill-and-replace operation 50 times. (At which point I manually killed router A.)

      Router A was running under valgrind, and produced the following output:
       
       
      [mick@colossus ~]$ /usr/bin/valgrind --leak-check=full --show-leak-kinds=definite --trace-children=yes --suppressions=/home/mick/latest/qpid-dispatch/tests/valgrind.supp /home/mick/latest/install/dispatch/sbin/qdrouterd  --config /home/mick/mercury/results/test_03/2018_12_06/config/A.conf -I /home/mick/latest/install/dispatch/lib/qpid-dispatch/python
      ==9409== Memcheck, a memory error detector
      ==9409== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
      ==9409== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
      ==9409== Command: /home/mick/latest/install/dispatch/sbin/qdrouterd --config /home/mick/mercury/results/test_03/2018_12_06/config/A.conf -I /home/mick/latest/install/dispatch/lib/qpid-dispatch/python
      ==9409==
      ^C==9409==
      ==9409== Process terminating with default action of signal 2 (SIGINT)
      ==9409==    at 0x61C0A37: kill (in /usr/lib64/libc-2.26.so)
      ==9409==    by 0x401636: main (main.c:367)
      ==9409==
      ==9409== HEAP SUMMARY:
      ==9409==     in use at exit: 6,933,690 bytes in 41,903 blocks
      ==9409==   total heap usage: 669,024 allocs, 627,121 frees, 92,449,020 bytes allocated
      ==9409==
      ==9409== 8,640 (480 direct, 8,160 indirect) bytes in 20 blocks are definitely lost in loss record 4,229 of 4,323
      ==9409==    at 0x4C2CB6B: malloc (vg_replace_malloc.c:299)
      ==9409==    by 0x4E7D336: qdr_error_from_pn (error.c:37)
      ==9409==    by 0x4E905D7: AMQP_link_detach_handler (router_node.c:822)
      ==9409==    by 0x4E60A6C: close_links (container.c:298)
      ==9409==    by 0x4E6109F: close_handler (container.c:311)
      ==9409==    by 0x4E6109F: qd_container_handle_event (container.c:639)
      ==9409==    by 0x4E93971: handle (server.c:985)
      ==9409==    by 0x4E944C8: thread_run (server.c:1010)
      ==9409==    by 0x4E947CF: qd_server_run (server.c:1284)
      ==9409==    by 0x40186E: main_process (main.c:112)
      ==9409==    by 0x401636: main (main.c:367)
      ==9409==
      ==9409== 14,256 (792 direct, 13,464 indirect) bytes in 33 blocks are definitely lost in loss record 4,261 of 4,323
      ==9409==    at 0x4C2CB6B: malloc (vg_replace_malloc.c:299)
      ==9409==    by 0x4E7D336: qdr_error_from_pn (error.c:37)
      ==9409==    by 0x4E905D7: AMQP_link_detach_handler (router_node.c:822)
      ==9409==    by 0x4E60A6C: close_links (container.c:298)
      ==9409==    by 0x4E6109F: close_handler (container.c:311)
      ==9409==    by 0x4E6109F: qd_container_handle_event (container.c:639)
      ==9409==    by 0x4E93971: handle (server.c:985)
      ==9409==    by 0x4E944C8: thread_run (server.c:1010)

      ==9409==    by 0x550150A: start_thread (in /usr/lib64/libpthread-2.26.so)
       ==9409==    by 0x628138E: clone (in /usr/lib64/libc-2.26.so)
      ==9409==
      ==9409== 575,713 (24 direct, 575,689 indirect) bytes in 1 blocks are definitely lost in loss record 4,321 of 4,323
      ==9409==    at 0x4C2CB6B: malloc (vg_replace_malloc.c:299)
      ==9409==    by 0x4E83FCA: qdr_add_link_ref (router_core.c:518)
      ==9409==    by 0x4E7A3BF: qdr_link_inbound_first_attach_CT (connections.c:1517)
      ==9409==    by 0x4E8484B: router_core_thread (router_core_thread.c:116)
      ==9409==    by 0x550150A: start_thread (in /usr/lib64/libpthread-2.26.so)
      ==9409==    by 0x628138E: clone (in /usr/lib64/libc-2.26.so)
      ==9409==
      ==9409== LEAK SUMMARY:
      ==9409==    definitely lost: 1,296 bytes in 54 blocks
      ==9409==    indirectly lost: 597,313 bytes in 3,096 blocks
      ==9409==      possibly lost: 1,473,248 bytes in 6,538 blocks
      ==9409==    still reachable: 4,861,833 bytes in 32,215 blocks
      ==9409==         suppressed: 0 bytes in 0 blocks
      ==9409== Reachable blocks (those to which a pointer was found) are not shown.
      ==9409== To see them, rerun with: --leak-check=full --show-leak-kinds=all
      ==9409==
      ==9409== For counts of detected and suppressed errors, rerun with: -v
      ==9409== ERROR SUMMARY: 1040 errors from 1040 contexts (suppressed: 0 from 0)

      [mick@colossus ~]$
       

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              mgoulish michael goulish
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: