activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (AMQCPP-121) Possible memory leak in activemq::transport::IOTransport::run
Date Thu, 14 Jun 2007 11:13:33 GMT

     [ https://issues.apache.org/activemq/browse/AMQCPP-121?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Timothy Bish resolved AMQCPP-121.
---------------------------------

    Resolution: Fixed

Reported to have been fixed by the fix in https://issues.apache.org/activemq/browse/AMQCPP-128.

> Possible memory leak in activemq::transport::IOTransport::run
> -------------------------------------------------------------
>
>                 Key: AMQCPP-121
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-121
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>    Affects Versions: 2.1
>            Reporter: Albert Strasheim
>            Assignee: Nathan Mittler
>             Fix For: 2.1
>
>
> There might be a memory leak in activemq::transport::IOTransport::run.
> Valgrind says:
> ==20739== 20 bytes in 1 blocks are definitely lost in loss record 126 of 175
> ==20739==    at 0x4005BA5: operator new(unsigned) (vg_replace_malloc.c:163)
> ==20739==    by 0x4776995: activemq::connector::openwire::marshal::v2::ResponseMarshaller::createObject()
const (ResponseMarshaller.cpp:40)
> ==20739==    by 0x46A433B: activemq::connector::openwire::OpenWireFormat::doUnmarshal(activemq::io::DataInputStream*)
(OpenWireFormat.cpp:239)
> ==20739==    by 0x46A48C9: activemq::connector::openwire::OpenWireFormat::unmarshal(activemq::io::DataInputStream*)
(OpenWireFormat.cpp:185)
> ==20739==    by 0x46A6E5D: activemq::connector::openwire::OpenWireCommandReader::readCommand()
(OpenWireCommandReader.cpp:71)
> ==20739==    by 0x46D3857: activemq::transport::IOTransport::run() (IOTransport.cpp:166)
> ==20739==    by 0x4667DE7: activemq::concurrent::Thread::runCallback(void*) (Thread.cpp:152)
> ==20739==    by 0x4963DA: start_thread (in /lib/libpthread-2.5.so)
> ==20739==    by 0x3F026D: clone (in /lib/libc-2.5.so)
> The code looks like this:
> void IOTransport::run(){
>     try{
>         while( !closed ){
>             Command* command = reader->readCommand();
>             fire( command );
>         }
>     }
>     catch( exceptions::ActiveMQException& ex ){ /*...*/ }
>     catch( ... ){ /*...*/ }
> }
> What might be happening here is that readCommand succeeds but that fire throws an exception
for some reason. If this happens, command won't be freed.
> Not quite sure under what circumstances this happens. If you're not convinced, I can
try to narrow down the code that causes the leak.

-- 
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