Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-2885

C++ qmf console shows memory leaks under valgrind.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Trivial
    • Resolution: Fixed
    • None
    • 0.7
    • QMF
    • None

    Description

      Running the ping example from the qmf-console under valgrind reveals memory leaks on shutdown:

      [kgiusti@localhost qmf-console]$ LD_LIBRARY_PATH="/home/kgiusti/Desktop/work/qpid/cpp/src/.libs" valgrind --leak-check=yes ./.libs/ping
      ==26672== Memcheck, a memory error detector
      ==26672== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al.
      ==26672== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info
      ==26672== Command: ./.libs/ping
      ==26672==
      Ping Broker: localhost:5672... Result: code=0 text=OK seq=0
      Ping Broker: localhost:5672... Result: code=0 text=OK seq=1
      Ping Broker: localhost:5672... Result: code=0 text=OK seq=2
      Ping Broker: localhost:5672... Result: code=0 text=OK seq=3
      Ping Broker: localhost:5672... Result: code=0 text=OK seq=4
      ==26672==
      ==26672== HEAP SUMMARY:
      ==26672== in use at exit: 38,479 bytes in 801 blocks
      ==26672== total heap usage: 13,032 allocs, 12,231 frees, 2,849,889 bytes allocated
      ==26672==
      ==26672== 60 (24 direct, 36 indirect) bytes in 1 blocks are definitely lost in loss record 4 of 32
      ==26672== at 0x4A05974: operator new(unsigned long) (vg_replace_malloc.c:220)
      ==26672== by 0x4C1EF97: qpid::console::Broker::resetAgents() (Broker.cpp:132)
      ==26672== by 0x4C1FA81: qpid::console::Broker::ConnectionThread::run() (Broker.cpp:192)
      ==26672== by 0x5241FA9: qpid::sys::(anonymous namespace)::runRunnable(void*) (Thread.cpp:35)
      ==26672== by 0x3B42807760: start_thread (in /lib64/libpthread-2.12.so)
      ==26672== by 0x3B420E14EC: clone (in /lib64/libc-2.12.so)
      ==26672==
      ==26672== 38,387 (56 direct, 38,331 indirect) bytes in 1 blocks are definitely lost in loss record 32 of 32
      ==26672== at 0x4A05974: operator new(unsigned long) (vg_replace_malloc.c:220)
      ==26672== by 0x4C30B79: qpid::console::SessionManager::handlePackageInd(qpid::console::Broker*, qpid::framing::Buffer&, unsigned int) (SessionManager.cpp:314)
      ==26672== by 0x4C210F5: qpid::console::Broker::received(qpid::client::Message&) (Broker.cpp:108)
      ==26672== by 0x4ED7B3E: qpid::client::SubscriptionImpl::received(qpid::client::Message&) (SubscriptionImpl.cpp:132)
      ==26672== by 0x4EB9B3F: qpid::client::Dispatcher::run() (Dispatcher.cpp:88)
      ==26672== by 0x4C1FABB: qpid::console::Broker::ConnectionThread::run() (Broker.cpp:198)
      ==26672== by 0x5241FA9: qpid::sys::(anonymous namespace)::runRunnable(void*) (Thread.cpp:35)
      ==26672== by 0x3B42807760: start_thread (in /lib64/libpthread-2.12.so)
      ==26672== by 0x3B420E14EC: clone (in /lib64/libc-2.12.so)
      ==26672==
      ==26672== LEAK SUMMARY:
      ==26672== definitely lost: 80 bytes in 2 blocks
      ==26672== indirectly lost: 38,367 bytes in 798 blocks
      ==26672== possibly lost: 0 bytes in 0 blocks
      ==26672== still reachable: 32 bytes in 1 blocks
      ==26672== suppressed: 0 bytes in 0 blocks
      ==26672== Reachable blocks (those to which a pointer was found) are not shown.
      ==26672== To see them, rerun with: --leak-check=full --show-reachable=yes
      ==26672==
      ==26672== For counts of detected and suppressed errors, rerun with: -v
      ==26672== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 47 from 9)

      Attachments

        Activity

          People

            kgiusti Ken Giusti
            kgiusti Ken Giusti
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: