activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Albert Strasheim (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQCPP-91) A few more Openwire memory leaks
Date Fri, 16 Mar 2007 14:10:34 GMT

    [ https://issues.apache.org/activemq/browse/AMQCPP-91?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_38848
] 

Albert Strasheim commented on AMQCPP-91:
----------------------------------------

Here's another possible leak:

==32068== 12258688 (287688 direct, 11971000 indirect) bytes in 11987 blocks are definitely
lost in loss record 39 of 40
==32068==    at 0x1B90939A: operator new(unsigned) (vg_replace_malloc.c:132)
==32068==    by 0x81CF845: activemq::connector::openwire::OpenWireFormat::marshal(activemq::transport::Command*,
activemq::io::DataOutputStream*) (OpenWireFormat.cpp:129)
==32068==    by 0x81D1F63: activemq::connector::openwire::OpenWireCommandWriter::writeCommand(activemq::transport::Command*)
(OpenWireCommandWriter.cpp:69)
==32068==    by 0x817A1EF: activemq::transport::IOTransport::oneway(activemq::transport::Command*)
(IOTransport.cpp:83)
==32068==    by 0x81A123C: activemq::transport::TransportFilter::oneway(activemq::transport::Command*)
(TransportFilter.h:146)
==32068==    by 0x819E78A: activemq::transport::ResponseCorrelator::request(activemq::transport::Command*)
(ResponseCorrelator.cpp:119)
==32068==    by 0x81D2BAA: activemq::connector::openwire::OpenWireFormatNegotiator::request(activemq::transport::Command*)
(OpenWireFormatNegotiator.cpp:102)
==32068==    by 0x8197657: activemq::connector::openwire::OpenWireConnector::syncRequest(activemq::transport::Command*)
(OpenWireConnector.cpp:1404)
==32068==    by 0x8199CEF: activemq::connector::openwire::OpenWireConnector::connect() (OpenWireConnector.cpp:276)
==32068==    by 0x819A1BB: activemq::connector::openwire::OpenWireConnector::start() (OpenWireConnector.cpp:222)
==32068==    by 0x81538BC: activemq::core::ActiveMQConnectionFactory::createConnection(std::string
const&, std::string const&, std::string const&, std::string const&) (ActiveMQConnectionFactory.cpp:177)
==32068==    by 0x8153DC9: activemq::core::ActiveMQConnectionFactory::createConnection() (ActiveMQConnectionFactory.cpp:66)

Looks like the BooleanStreams that are being allocated aren't being deleted.

> A few more Openwire memory leaks
> --------------------------------
>
>                 Key: AMQCPP-91
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-91
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Openwire
>    Affects Versions: 2.0
>            Reporter: Albert Strasheim
>         Assigned To: Nathan Mittler
>            Priority: Minor
>             Fix For: 2.0
>
>
> 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.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message