activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Helen Huang (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQCPP-388) AprPool::getAprPool() returns NULL, causing access violation and application crash
Date Tue, 20 Mar 2012 14:59:37 GMT

    [ https://issues.apache.org/jira/browse/AMQCPP-388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13233460#comment-13233460
] 

Helen Huang commented on AMQCPP-388:
------------------------------------

I tried to turn off the inactivity monitor by using the following url, but it did not work.
The InActivityMonitor class was still placed on the call stack leading to the same crash.
Could you please take a look and see if I did it wrong. Much thanks for your help!

The new url: (I changed the url on line 58 in main.cpp of the attached BrokerMonitor program)

ActiveMQConnectionFactory* connectionFactory=new ActiveMQConnectionFactory("tcp://127.0.0.1:61616?connection.sendTimeout=2000&wireFormat.maxInactivityDuration=0");

Note: We use CmsTemplate to send and receiver messages. This connection factory is used to
create the CmsTemplate instances.

Call stack at crash:

 	activemq-cppud.dll!activemq::core::ActiveMQSession::dispose()  Line 357 + 0x9 bytes	C++
 	activemq-cppud.dll!activemq::core::ActiveMQConnection::cleanup()  Line 466 + 0x8 bytes	C++
 	activemq-cppud.dll!activemq::core::ActiveMQConnection::onException(const decaf::lang::Exception
& ex={...})  Line 783	C++
 	activemq-cppud.dll!activemq::transport::TransportFilter::fire(const decaf::lang::Exception
& ex={...})  Line 54 + 0x17 bytes	C++
 	activemq-cppud.dll!activemq::transport::TransportFilter::onException(const decaf::lang::Exception
& ex={...})  Line 47	C++
 	activemq-cppud.dll!activemq::transport::TransportFilter::fire(const decaf::lang::Exception
& ex={...})  Line 54 + 0x17 bytes	C++
 	activemq-cppud.dll!activemq::transport::TransportFilter::onException(const decaf::lang::Exception
& ex={...})  Line 47	C++
 	activemq-cppud.dll!activemq::transport::TransportFilter::fire(const decaf::lang::Exception
& ex={...})  Line 54 + 0x17 bytes	C++
 	activemq-cppud.dll!activemq::transport::TransportFilter::onException(const decaf::lang::Exception
& ex={...})  Line 47	C++
>	activemq-cppud.dll!activemq::transport::inactivity::InactivityMonitor::onException(const
decaf::lang::Exception & ex={...})  Line 314	C++
 	activemq-cppud.dll!activemq::transport::TransportFilter::fire(const decaf::lang::Exception
& ex={...})  Line 54 + 0x17 bytes	C++
 	activemq-cppud.dll!activemq::transport::TransportFilter::onException(const decaf::lang::Exception
& ex={...})  Line 47	C++
 	activemq-cppud.dll!activemq::transport::IOTransport::fire(decaf::lang::Exception & ex={...})
 Line 72 + 0x17 bytes	C++
 	activemq-cppud.dll!activemq::transport::IOTransport::run()  Line 245	C++
 	activemq-cppud.dll!decaf::lang::ThreadProperties::runCallback(decaf::lang::ThreadProperties
* properties=0x01401000)  Line 137 + 0x13 bytes	C++
 	activemq-cppud.dll!`anonymous namespace'::threadWorker(void * arg=0x01401000)  Line 210
+ 0x9 bytes	C++
 	msvcr80d.dll!_callthreadstartex()  Line 348 + 0xf bytes	C
 	msvcr80d.dll!_threadstartex(void * ptd=0x01400db0)  Line 331	C

                
> AprPool::getAprPool() returns NULL, causing access violation and application crash
> ----------------------------------------------------------------------------------
>
>                 Key: AMQCPP-388
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-388
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Decaf
>    Affects Versions: 3.2.3
>         Environment: Windows xp service pack 3, ActiveMQ broker 5.3.1, apr 1.4.2, apr-util
1.3.9, apr iconv 1.2.1
>            Reporter: Helen Huang
>            Assignee: Timothy Bish
>            Priority: Critical
>             Fix For: 3.2.3
>
>         Attachments: BrokerMonitor.zip
>
>
> Our application that uses activemq c++ client lib crashed with the following dump:
> ----------------------------------------------------------------------------------------------------------------------
> Thread 87 - System ID 3780
> Function     Arg 1     Arg 2     Arg 3   Source 
> libapr_1!apr_pvsprintf+8     00000000     0642a188     180eeb94    
> activemq_cppu!decaf::lang::Exception::buildMessage+71     0642a188     180eeb74     180eee2c
   
> activemq_cppu!decaf::lang::exceptions::RuntimeException::RuntimeException+4d     180efeec
    0642a160     00000097    
> activemq_cppu!decaf::lang::ThreadProperties::runCallback+125     180eee2c     180efee0
    00000001    
> msvcr80!CatchIt+5c     00000000     00000000     00000000
> LIBAPR_1!APR_PVSPRINTF+8In scotapp.dmp the assembly instruction at libapr_1!apr_pvsprintf+8
in C:\scot\dll\libapr-1.dll has caused an access violation exception (0xC0000005) when trying
to read from memory location 0x0000002c on thread 87
> --------------------------------------------------------------------------------------------------------------------
> On the call stack, we saw that following function from class decaf::lang::Exception was
called:
> void Exception::buildMessage( const char* format, va_list& vargs ) {
>     // Allocate buffer with a guess of it's size
>     AprPool pool;
>     // Allocate a buffer of the specified size.
>     char* buffer = apr_pvsprintf( pool.getAprPool(), format, vargs );
>     // Guessed size was enough. Assign the string.
>     message.assign( buffer, strlen( buffer ) );
> }
> The first parameter passed into apr_pvsprintf was NULL, causing the crash. Could you
please take a look and see if there is any bug in the activemqcpp code that could cause the
problem. Thanks!

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message