Uploaded image for project: 'ActiveMQ C++ Client'
  1. ActiveMQ C++ Client
  2. AMQCPP-91

A few more Openwire memory leaks

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 2.0
    • 2.0
    • Openwire
    • None

    Description

      I've found a few memory leaks in the Openwire code when running the unit tests for our library. I'll report the first few now (the ones I think I've figured out), and I'll add info on further leaks in separate comments.

      First possible leak:

      ==22866== 1728 (864 direct, 864 indirect) bytes in 12 blocks are definitely lost in loss record 25 of 40
      ==22866== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
      ==22866== by 0x81943CA: activemq::connector::openwire::OpenWireConnector::createConsumerInfo(cms::Destination const*, activemq::connector::SessionInfo*) (OpenWireConnector.cpp:621)
      ==22866== by 0x81994FD: activemq::connector::openwire::OpenWireConnector::createConsumer(cms::Destination const*, activemq::connector::SessionInfo*, std::string const&, bool) (OpenWireConnector.cpp:382)
      ==22866== by 0x8148B89: activemq::core::ActiveMQSession::createConsumer(cms::Destination const*, std::string const&, bool) (ActiveMQSession.cpp:236)
      ==22866== by 0x8146CAB: activemq::core::ActiveMQSession::createConsumer(cms::Destination const*, std::string const&) (ActiveMQSession.cpp:208)

      OpenWireConnector::createConsumerInfo allocates a commands::ConsumerInfo which is returned to OpenWireConnector::createConsumer which does a few things with it, but doesn't delete it if the member function returns normally.

      Next possible leak:

      ==22866== 1232 (440 direct, 792 indirect) bytes in 11 blocks are definitely lost in loss record 27 of 40
      ==22866== at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
      ==22866== by 0x81989F7: activemq::connector::openwire::OpenWireConnector::createProducer(cms::Destination const*, activemq::connector::SessionInfo*) (OpenWireConnector.cpp:680)
      ==22866== by 0x8149324: activemq::core::ActiveMQSession::createProducer(cms::Destination const*) (ActiveMQSession.cpp:309)

      OpenWireConnector::createProducer allocates a OpenWireProducerInfo which isn't deleted if the member function returns normally.

      Attachments

        Activity

          People

            tabish Timothy A. Bish
            fullung Albert Strasheim
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: