Hi Tim In the onException() method of my consumer, I was closing the the connection and creating a new one to keep my consumer alive. I changed the code to dispose of the connection in another thread (after the onExcetion() method returns, and the problem went away. You would know this better, but I dont think there is an issue in the ActiveMQ-CPP library, this was my issue.
Interestingly enough this was working with ActiveMQ-CPP 2.1 on Linux before. It was also working on windows (with MSVS build) with ActiveMQ-CPP-3.1.2. Thank you for your fast responses to my issue. Timothy Bish wrote: > > On Wed, 2010-05-05 at 13:11 -0700, simpel wrote: >> Hi Tim, >> I was not shutting down. The application was still running when this >> exception occured. >> >> I was able to reproduce the problem by starting my application, and then >> shutdown my local activemq process. As soon as the CMS detects the >> connection has terminated it gets into the >> activemq::core::ActiveMQConnection::onException () method where the >> pure-virtual method invocation occurs. >> > > I've not seen any errors like this in testing, if you want to create a > new issue and provide a sample app along with steps to reproduce we can > try and investigate it. > > Regards > Tim. > >> >> >> Timothy Bish wrote: >> > >> > On Wed, 2010-05-05 at 11:36 -0700, simpel wrote: >> >> My program cored with the following stack trace. Looking at the code >> it >> >> seems >> >> unlikely that the synchronization object has purevirtual lock() >> method. >> >> Any >> >> ideas what has gone wrong here? >> > >> > Did you ensure that all your object created from the ActiveMQ-CPP >> > library were destroyed before your application called the >> > ActiveMQCPP::shutdownLibrary() method? >> > >> > Regards >> > Tim >> > >> >> >> >> Thread 1 (process 19050): >> >> #0 0x00f89402 in __kernel_vsyscall () >> >> #1 0x00ffddf0 in raise () from /lib/libc.so.6 >> >> #2 0x00fff701 in abort () from /lib/libc.so.6 >> >> #3 0x00db74d0 in __gnu_cxx::__verbose_terminate_handler () from >> >> /usr/lib/libstdc++.so.6 >> >> #4 0x00db4f35 in ?? () from /usr/lib/libstdc++.so.6 >> >> #5 0x00db4f72 in std::terminate () from /usr/lib/libstdc++.so.6 >> >> #6 0x00db5695 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.6 >> >> #7 0x081f2a5d in decaf::util::concurrent::Lock::lock >> (this=0xad1f8080) >> >> at >> >> >> /root/P4/3pty/ActiveMQ/include/activemq-cpp-3.1.2/decaf/util/concurrent/Lock.h:96 >> >> #8 0x081f2bc8 in Lock (this=0xad1f8080, object=0x97d4280, >> >> intiallyLocked=true) >> >> at >> >> >> /root/P4/3pty/ActiveMQ/include/activemq-cpp-3.1.2/decaf/util/concurrent/Lock.h:70 >> >> #9 0x006e30df in activemq::core::ActiveMQConnection::onException () >> >> from /usr/lib/libactivemq-cpp.so.9 >> >> #10 0x0076604b in activemq::transport::TransportFilter::fire () from >> >> /usr/lib/libactivemq-cpp.so.9 >> >> #11 0x00766094 in activemq::transport::TransportFilter::onException () >> >> from /usr/lib/libactivemq-cpp.so.9 >> >> #12 0x0076604b in activemq::transport::TransportFilter::fire () from >> >> /usr/lib/libactivemq-cpp.so.9 >> >> #13 0x00766094 in activemq::transport::TransportFilter::onException () >> >> from /usr/lib/libactivemq-cpp.so.9 >> >> #14 0x0076604b in activemq::transport::TransportFilter::fire () from >> >> /usr/lib/libactivemq-cpp.so.9 >> >> #15 0x00766094 in activemq::transport::TransportFilter::onException () >> >> from /usr/lib/libactivemq-cpp.so.9 >> >> #16 0x0078b74d in >> >> activemq::transport::inactivity::InactivityMonitor::onException () >> >> from /usr/lib/libactivemq-cpp.so.9 >> >> #17 0x0078dcfd in >> >> activemq::transport::inactivity::AsyncSignalReadErrorkTask::iterate () >> >> from /usr/lib/libactivemq-cpp.so.9 >> >> #18 0x0075dcd1 in activemq::threads::CompositeTaskRunner::iterate () >> >> from /usr/lib/libactivemq-cpp.so.9 >> >> #19 0x0075d79c in activemq::threads::CompositeTaskRunner::run () from >> >> /usr/lib/libactivemq-cpp.so.9 >> >> #20 0x009cca6d in decaf::lang::ThreadProperties::runCallback () from >> >> /usr/lib/libactivemq-cpp.so.9 >> >> #21 0x009c9d77 in ?? () from /usr/lib/libactivemq-cpp.so.9 >> >> #22 0x003a373b in start_thread () from /lib/libpthread.so.0 >> >> #23 0x010a6cfe in clone () from /lib/libc.so.6 >> >> >> > >> > -- >> > Tim Bish >> > >> > Open Source Integration: http://fusesource.com >> > ActiveMQ in Action: http://www.manning.com/snyder/ >> > >> > Follow me on Twitter: http://twitter.com/tabish121 >> > My Blog: http://timbish.blogspot.com/ >> > >> > >> > >> > > -- > Tim Bish > > Open Source Integration: http://fusesource.com > ActiveMQ in Action: http://www.manning.com/snyder/ > > Follow me on Twitter: http://twitter.com/tabish121 > My Blog: http://timbish.blogspot.com/ > > > -- View this message in context: http://old.nabble.com/Linux-activemq-cpp-3.1.2-crash-tp28464828p28473801.html Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.
