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

Sebastien SOILEN commented on AMQCPP-227:
-----------------------------------------

Hi!

I posted previously on the users ML for segmentation faults in the 2.2.4 
version with APR resources.

Before opening new issue, I would check if my problem is related or not to this 
one.

Here are the python code which causes the segfault:

{quote}
import sys
from pyactivemq import *

broker = 
"tcp://127.0.0.1:61616?connection.closeTimeout=1000&connection.sendTimeout=5000&connection.socketBufferSize=128*1024"

def check_broker():

        try:
            f = pyactivemq.ActiveMQConnectionFactory(broker)
            c = f.createConnection()
            c.start()
            c.stop()
            c.close()
            sys.exit(0)

        except Exception, e:
            sys.stderr.write("Erreur activeMQ: "+str(e))
            sys.exit(1)

check_broker()
{quote}


Below are the complete traces of all the threads

Thank you.

Regards,

Sebastien SOILEN


{quote}
Thread 4 (process 13751):
#0  0x00d97940 in __gnu_cxx::stdio_sync_filebuf<wchar_t, 
std::char_traits<wchar_t> >::file () from /usr/lib/libstdc++.so.6
No symbol table info available.
#1  0x00d99502 in std::ostream::flush () from /usr/lib/libstdc++.so.6
No symbol table info available.
#2  0x00d61bb1 in std::ios_base::Init::~Init () from /usr/lib/libstdc++.so.6
No symbol table info available.
#3  0x00d77150 in std::basic_ios<char, std::char_traits<char> >::copyfmt () 
from /usr/lib/libstdc++.so.6
No symbol table info available.
#4  0x005029c9 in exit () from /lib/libc.so.6
No symbol table info available.
#5  0x00707a42 in Py_Exit () from /usr/lib/libpython2.4.so.1.0
No symbol table info available.
#6  0x00707b12 in Py_Exit () from /usr/lib/libpython2.4.so.1.0
No symbol table info available.
#7  0x00707d29 in PyErr_PrintEx () from /usr/lib/libpython2.4.so.1.0
No symbol table info available.
#8  0x00707f5e in PyErr_Print () from /usr/lib/libpython2.4.so.1.0
No symbol table info available.
#9  0x00708141 in PyRun_SimpleFileExFlags () from /usr/lib/libpython2.4.so.1.0
No symbol table info available.
#10 0x007088ca in PyRun_AnyFileExFlags () from /usr/lib/libpython2.4.so.1.0
No symbol table info available.
#11 0x0070f2d5 in Py_Main () from /usr/lib/libpython2.4.so.1.0
No symbol table info available.
#12 0x080485b2 in main ()
No symbol table info available.

Thread 3 (process 13772):
#0  0x00434402 in __kernel_vsyscall ()
No symbol table info available.
#1  0x0062de1b in read () from /lib/libpthread.so.0
No symbol table info available.
#2  0x0020894a in apr_socket_recv (sock=0x894ccb8, buf=0x8954bc8 "", 
len=0xb7ad30c0) at /usr/include/bits/unistd.h:35
        rv = <value optimized out>
        arv = <value optimized out>
#3  0x011548d9 in decaf::net::SocketInputStream::read (this=0x8947018, 
buffer=0x8954bc8 "", offset=0, bufferSize=1)
    at decaf/net/SocketInputStream.cpp:180
        size = 1
        result = <value optimized out>
#4  0x01174a01 in decaf::io::BufferedInputStream::bufferData (this=0x893f240) 
at decaf/io/BufferedInputStream.cpp:260
        available = 0
        bytesRead = <value optimized out>
        ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {
      static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0xdc9731 
"\203Ä\004[]Ã\220\220\220\220\220\220\220\220\220U\211åS\203ì\004\213E\bèèÅøÿ\201Ã\205\016\003"}},
 
    cause = 0x884dee8, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x13b544c, _M_finish = 0xb7ad3148, 
          _M_end_of_storage = 0x11e2093}}, <No data fields>}}, <No data fields>}
#5  0x01174f81 in decaf::io::BufferedInputStream::read (this=0x893f240, 
targetBuffer=0xb7ad31f4 "", offset=0, 
    targetBufferSize=4) at decaf/io/BufferedInputStream.cpp:181
        bytesToCopy = 0
        totalRead = 0
        ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {
      static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0xffffffff <Address 0xffffffff out of bounds>}}, cause = 0x0, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x6, _M_finish = 0x13a1860, 
          _M_end_of_storage = 0x884dee8}}, <No data fields>}}, <No data fields>}
#6  0x01178998 in decaf::io::DataInputStream::readInt (this=0x8972228) at 
decaf/io/DataInputStream.h:360
        buffer = "\000\000\000"
        ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {
      static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0x6 <Address 0x6 out of bounds>}}, cause = 0xb7ad325c, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0xb7ad3228, _M_finish = 0x12e7780, 
          _M_end_of_storage = 0x884dee8}}, <No data fields>}}, <No data fields>}
#7  0x010e021e in activemq::connector::openwire::OpenWireFormat::unmarshal 
(this=0x896d8d8, dis=0x8972228)
    at activemq/connector/openwire/OpenWireFormat.cpp:227
        data = <value optimized out>
        ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {
      static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0xb7ad3278 "Ø2­- ï®\021\001°à\226\bèÞ\204\b`\030:\001"}}, cause 
= 0x10e7a2d, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x8949d10, _M_finish = 0x884dee8, 
          _M_end_of_storage = 0x13a3638}}, <No data fields>}}, <No data fields>}
#8  0x010e5461 in 
activemq::connector::openwire::OpenWireCommandReader::readCommand 
(this=0x8949d8c)
    at activemq/connector/openwire/OpenWireCommandReader.cpp:71
        ex = {<decaf::io::IOException> = {<decaf::lang::Exception> = 
{<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, 
message = {static npos = 4294967295, 
        _M_dataplus = {<std::allocator<char>> = 
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
          _M_p = 0x0}}, cause = 0x0, 
      stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
          _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x0, _M_finish = 0x0, 
            _M_end_of_storage = 0x0}}, <No data fields>}}, <No data fields>}, 
<No data fields>}
#9  0x01114a9a in activemq::transport::IOTransport::run (this=0x8925f30) at 
activemq/transport/IOTransport.cpp:188
        command = (class activemq::transport::Command *) 0x884dee8
#10 0x011691b8 in decaf::lang::Thread::runCallback (self=0x88e8398, 
param=0x8976388) at decaf/lang/Thread.cpp:125
No locals.
#11 0x0020e736 in dummy_worker (opaque=0x88e8398) at 
threadproc/unix/thread.c:142
No locals.
#12 0x0062745b in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#13 0x005a7c4e in clone () from /lib/libc.so.6
No symbol table info available.

Thread 2 (process 13781):
#0  0x00434402 in __kernel_vsyscall ()
No symbol table info available.
#1  0x0062de1b in read () from /lib/libpthread.so.0
No symbol table info available.
#2  0x0020894a in apr_socket_recv (sock=0x8992958, buf=0x8980260 "", 
len=0xb66d10c0) at /usr/include/bits/unistd.h:35
        rv = <value optimized out>
        arv = <value optimized out>
#3  0x011548d9 in decaf::net::SocketInputStream::read (this=0x8980050, 
buffer=0x8980260 "", offset=0, bufferSize=1)
    at decaf/net/SocketInputStream.cpp:180
        size = 1
        result = <value optimized out>
#4  0x01174a01 in decaf::io::BufferedInputStream::bufferData (this=0x89801a0) 
at decaf/io/BufferedInputStream.cpp:260
        available = 0
        bytesRead = <value optimized out>
        ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {
      static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0x5fd558 "double free or corruption (fasttop)"}}, cause = 
0x89c4d50, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x13a3638, _M_finish = 0x89c4d54, 
          _M_end_of_storage = 0x12dc420}}, <No data fields>}}, <No data fields>}
#5  0x01174f81 in decaf::io::BufferedInputStream::read (this=0x89801a0, 
targetBuffer=0xb66d11f4 "", offset=0, 
    targetBufferSize=4) at decaf/io/BufferedInputStream.cpp:181
        bytesToCopy = 0
        totalRead = 0
        ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {
      static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0x89d2764 ""}}, cause = 0x13b544c, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0xb66d11b8, _M_finish = 0xdfa5d4, 
          _M_end_of_storage = 0x62db51}}, <No data fields>}}, <No data fields>}
#6  0x01178998 in decaf::io::DataInputStream::readInt (this=0x89b8100) at 
decaf/io/DataInputStream.h:360
        buffer = "\000\000\000"
        ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {
      static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0x89d2760 " '\235\b"}}, cause = 0xb66d1b90, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0xb66d1b90, _M_finish = 0x2038e0, 
          _M_end_of_storage = 0x899ce1c}}, <No data fields>}}, <No data fields>}
#7  0x010e021e in activemq::connector::openwire::OpenWireFormat::unmarshal 
(this=0x89b3730, dis=0x89b8100)
    at activemq/connector/openwire/OpenWireFormat.cpp:227
        data = <value optimized out>
        ex = {<decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {
      static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0xb66d1278 "Ø\022m¶Ç®\021\001(Í\231\bPM\234\bÈ\022m¶"}}, cause = 
0x117f6cf, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x899ce18, _M_finish = 0x89c4700, 
          _M_end_of_storage = 0x884deb4}}, <No data fields>}}, <No data fields>}
#8  0x010e5461 in 
activemq::connector::openwire::OpenWireCommandReader::readCommand 
(this=0x899ee44)
    at activemq/connector/openwire/OpenWireCommandReader.cpp:71
        ex = {<decaf::io::IOException> = {<decaf::lang::Exception> = 
{<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, 
message = {static npos = 4294967295, 
        _M_dataplus = {<std::allocator<char>> = 
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
          _M_p = 0x0}}, cause = 0x0, 
      stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
          _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x0, _M_finish = 0x0, 
            _M_end_of_storage = 0x0}}, <No data fields>}}, <No data fields>}, 
<No data fields>}
#9  0x01114a9a in activemq::transport::IOTransport::run (this=0x897fd70) at 
activemq/transport/IOTransport.cpp:188
        command = (class activemq::transport::Command *) 0x89c4d50
#10 0x011691b8 in decaf::lang::Thread::runCallback (self=0x88e83d8, 
param=0x89bc260) at decaf/lang/Thread.cpp:125
No locals.
#11 0x0020e736 in dummy_worker (opaque=0x88e83d8) at 
threadproc/unix/thread.c:142
No locals.
#12 0x0062745b in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#13 0x005a7c4e in clone () from /lib/libc.so.6
No symbol table info available.

Thread 1 (process 13776):
#0  0x00210bf7 in apr_atomic_add32 (mem=0x87c010c, val=1) at 
atomic/unix/mutex.c:78
        old_value = 0
        mutex = <value optimized out>
#1  0x00210c65 in apr_atomic_inc32 (mem=0x87c010c) at atomic/unix/mutex.c:132
No locals.
#2  0x01186460 in 
decaf::util::concurrent::atomic::AtomicInteger::getAndIncrement (this=0x87c0108)
    at decaf/util/concurrent/atomic/AtomicInteger.cpp:54
No locals.
#3  0x01119713 in activemq::transport::filters::ResponseCorrelator::oneway 
(this=0x87c00e8, command=0xb70d2074)
    at activemq/transport/filters/ResponseCorrelator.cpp:51
        ex = {<decaf::io::IOException> = {<decaf::lang::Exception> = 
{<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, 
message = {static npos = 4294967295, 
        _M_dataplus = {<std::allocator<char>> = 
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
          _M_p = 0x1 <Address 0x1 out of bounds>}}, cause = 0x20, 
      stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
          _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x617150, _M_finish = 0x0, 
            _M_end_of_storage = 0x1}}, <No data fields>}}, <No data fields>}, 
<No data fields>}
#4  0x010e7ff3 in 
activemq::connector::openwire::OpenWireFormatNegotiator::oneway 
(this=0x896e0b0, command=0xb70d2074)
    at activemq/connector/openwire/OpenWireFormatNegotiator.cpp:75
        ex = {<decaf::io::IOException> = {<decaf::lang::Exception> = 
{<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, 
message = {static npos = 4294967295, 
        _M_dataplus = {<std::allocator<char>> = 
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
          _M_p = 0x884ff4c "lY\234\b"}}, cause = 0x89c5944, 
      stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
          _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x6, _M_finish = 0x10, 
            _M_end_of_storage = 0x884ff48}}, <No data fields>}}, <No data 
fields>}, <No data fields>}
#5  0x010e8d72 in activemq::connector::openwire::OpenWireConnector::oneway 
(this=0x8949d10, command=0xb70d2074)
    at activemq/connector/openwire/OpenWireConnector.cpp:1495
        ex = {<activemq::connector::ConnectorException> = 
{<activemq::exceptions::ActiveMQException> = {<cms::CMSException> = {<> = {<No 
data fields>}, <No data fields>}, <decaf::lang::Exception> = 
{<decaf::lang::Throwable> = {<> = {<No data fields>}, <No data fields>}, 
message = {static npos = 4294967295, 
          _M_dataplus = {<std::allocator<char>> = 
{<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, 
            _M_p = 0x0}}, cause = 0x6, 
        stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
            _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0x13b544c, _M_finish = 0x11e3ce0, 
              _M_end_of_storage = 0x897f9b0}}, <No data fields>}}, <No data 
fields>}, <No data fields>}, <No data fields>}
#6  0x010ea560 in activemq::connector::openwire::OpenWireConnector::acknowledge 
(this=0x8949d10, session=0x897ea78, 
    consumer=0x897f870, message=0x89c5550, ackType=<value optimized out>)
    at activemq/connector/openwire/OpenWireConnector.cpp:916
        ack = 
{<activemq::connector::openwire::commands::BaseCommand<activemq::transport::Command>>
 = {<activemq::transport::Command> = {
      _vptr.Command = 0x13ab268}, 
<activemq::connector::openwire::commands::BaseDataStructure> = 
{<activemq::connector::openwire::commands::DataStructure> = 
{<activemq::connector::openwire::marshal::MarshalAware> = {
          _vptr.MarshalAware = 0x13ab2ec}, <No data fields>}, <No data 
fields>}, responseRequired = false, commandId = 0}, 
  destination = 0x884dea8, transactionId = 0x0, consumerId = 0x884dee0, ackType 
= 2 '\002', firstMessageId = 0x89c52a0, 
  lastMessageId = 0x884ff28, messageCount = 1, static ID_MESSAGEACK = 
<optimized out>}
        ex = <value optimized out>
        ex = <value optimized out>
#7  0x01077ded in activemq::core::ActiveMQConsumer::acknowledge 
(this=0x897f8a8, message=0x89c5608, ackType=2)
    at activemq/core/ActiveMQConsumer.cpp:458
        ex = {<cms::CMSException> = {<> = {<No data fields>}, <No data 
fields>}, <decaf::lang::Exception> = {<decaf::lang::Throwable> = {<> = {<No 
data fields>}, <No data fields>}, message = {static npos = 4294967295, 
      _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> 
= {<No data fields>}, <No data fields>}, 
        _M_p = 0x1d3550 "U\211åWVS\203ì\f\213E\bè6(ÿÿ\201ÃÏš\001"}}, cause = 
0x8d6f78, 
    stackTrace = {<std::_Vector_base<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, 
int>,std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >, int> > >> = {
        _M_impl = {<std::allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = 
{<__gnu_cxx::new_allocator<std::pair<std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >, int> >> = {<No data fields>}, 
<No data fields>}, _M_start = 0xb7b00c6c, _M_finish = 0x89c5ae8, 
          _M_end_of_storage = 0xb70d2178}}, <No data fields>}}, <No data 
fields>}
#8  0x0107825c in activemq::core::ActiveMQConsumer::afterMessageIsConsumed 
(this=0x897f8a8, message=0x89c5608, 
    messageExpired=false) at activemq/core/ActiveMQConsumer.cpp:408
No locals.
#9  0x0107901f in activemq::core::ActiveMQConsumer::dispatch (this=0x897f8a8, 
da...@0x89c5a80)
    at activemq/core/ActiveMQConsumer.cpp:492
        message = (class activemq::core::ActiveMQMessage *) 0x89c5608
#10 0x010921d5 in activemq::core::ActiveMQSessionExecutor::dispatch 
(this=0x897ed48, da...@0x89c5a80)
    at activemq/core/ActiveMQSessionExecutor.cpp:185
        lock_W = {_vptr.Lock = 0x139f470, locked = false, syncObject = 
0x897ec20}
#11 0x01093801 in activemq::core::ActiveMQSessionExecutor::dispatchAll 
(this=0x897ed48)
    at activemq/core/ActiveMQSessionExecutor.cpp:266
        lock_W = {_vptr.Lock = 0x139f470, locked = false, syncObject = 
0x897ed60}
        dataList = 
{<std::_List_base<activemq::core::DispatchData,std::allocator<activemq::core::DispatchData>
 >> = {
    _M_impl = {<std::allocator<std::_List_node<activemq::core::DispatchData> >> 
= {<__gnu_cxx::new_allocator<std::_List_node<activemq::core::DispatchData> >> = 
{<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x89c5a78, 
        _M_prev = 0x89c5a78}}}, <No data fields>}
        lock_W = {_vptr.Lock = 0x139f470, locked = true, syncObject = 0x897ed80}
#12 0x01093e2f in activemq::core::ActiveMQSessionExecutor::run (this=0x897ed48)
    at activemq/core/ActiveMQSessionExecutor.cpp:208
No locals.
#13 0x011691b8 in decaf::lang::Thread::runCallback (self=0x88e83b8, 
param=0x897f778) at decaf/lang/Thread.cpp:125
No locals.
#14 0x0020e736 in dummy_worker (opaque=0x88e83b8) at 
threadproc/unix/thread.c:142
No locals.
#15 0x0062745b in start_thread () from /lib/libpthread.so.0
No symbol table info available.
#16 0x005a7c4e in clone () from /lib/libc.so.6
No symbol table info available.
{quote}



> Mutex class allows for double free in APR pools under certain circumstances
> ---------------------------------------------------------------------------
>
>                 Key: AMQCPP-227
>                 URL: https://issues.apache.org/activemq/browse/AMQCPP-227
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: Decaf
>    Affects Versions: 2.2.4, 3.0
>            Reporter: Timothy Bish
>            Assignee: Timothy Bish
>            Priority: Critical
>             Fix For: 2.2.5, 3.0
>
>   Original Estimate: 2 days
>  Remaining Estimate: 2 days
>
> The Mutex class in the Decaf library can allow for two copies to be created 
> which both share pointers to APR resources and when the second instance is 
> destroyed a segfault occurs.  The code needs to be correct to properly copy 
> itself or prevent copying altogether so that this does not happen.

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

Reply via email to