activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (Commented) (JIRA)" <>
Subject [jira] [Commented] (AMQCPP-388) AprPool::getAprPool() returns NULL, causing access violation and application crash
Date Fri, 24 Feb 2012 22:11:49 GMT


Timothy Bish commented on AMQCPP-388:

The ThreadPool class was removed since it wasn't used by any of the ActiveMQ-CPP code and
had some limitations as well as a few bugs that weren't so great.  Depending on what you need
there are a couple utility classes that may help here, activemq::thread contains a few different
Task runners that can be used to run jobs async.  Also the decaf::util::concurrent namespace
contained a ThreadPoolExecutor that takes Runnable instance to execute using a pool.  The
one is v3.4.1 is a bit primitive but works about as well as the old ThreadPool class.
> AprPool::getAprPool() returns NULL, causing access violation and application crash
> ----------------------------------------------------------------------------------
>                 Key: AMQCPP-388
>                 URL:
>             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
>             Fix For: 3.2.3
> 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
> 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
> 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:!default.jspa
For more information on JIRA, see:


View raw message