[ https://issues.apache.org/jira/browse/QPID-1417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gordon Sim resolved QPID-1417. ------------------------------ Resolution: Fixed Fixed by r711855. > Seg fault caused by bad pointer in AggregateOutputControl > --------------------------------------------------------- > > Key: QPID-1417 > URL: https://issues.apache.org/jira/browse/QPID-1417 > Project: Qpid > Issue Type: Bug > Components: C++ Broker > Affects Versions: M4 > Reporter: Gordon Sim > Assignee: Gordon Sim > Priority: Critical > Fix For: M4 > > > If perftest is configured to cause a store "Enqueue capacity threshold > exceeded" error, the broker fails with a SIGSEV. > To reproduce, start the broker with (adjust paths): > ./qpidd --load-module /home/kpvdr/mrg/store.ref/cpp/lib/.libs/msgstore.so > --auth no --log-enable info+ --data-dir /tmp > At the time of filing, perftest used with --sub-tx option causes the sub to > run > slowly and thus cuase the pubs to overflow the journal (a known bug). Using > this flaw, start perftest with: > ./perftest --durable yes --tcp-nodelay --npubs 4 --nsubs 4 --sub-tx 10 > The broker cores almost immediately after printing a lot of error messages: > 2008-oct-24 14:00:53 info Listening on TCP port 5672 > [New Thread 0x43f09950 (LWP 16648)] > [New Thread 0x415a5950 (LWP 16649)] > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 notice Journal "perftest0": Created > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning SASL: No Authentication Performed > 2008-oct-24 14:01:01 warning Journal "perftest0": Enqueue capacity threshold > exceeded on queue "perftest0". > 2008-oct-24 14:01:01 error Unexpected exception: Enqueue capacity threshold > exceeded on queue "perftest0". (JournalImpl.cpp:501) > 2008-oct-24 14:01:01 warning Journal "perftest0": Enqueue capacity threshold > exceeded on queue "perftest0". > 2008-oct-24 14:01:01 error Connection 127.0.0.1:42680 closed by error: Enqueue > capacity threshold exceeded on queue "perftest0". (JournalImpl.cpp:501)(501) > 2008-oct-24 14:01:01 error Unexpected exception: Enqueue capacity threshold > exceeded on queue "perftest0". (JournalImpl.cpp:501) > 2008-oct-24 14:01:01 error Connection 127.0.0.1:42678 closed by error: Enqueue > capacity threshold exceeded on queue "perftest0". (JournalImpl.cpp:501)(501) > 2008-oct-24 14:01:01 error Channel exception: not-attached: Channel 2 is not > attached (qpid/amqp_0_10/SessionHandler.cpp:56) > 2008-oct-24 14:01:01 error Channel exception: not-attached: Channel 2 is not > attached (qpid/amqp_0_10/SessionHandler.cpp:56) > 2008-oct-24 14:01:01 error Channel exception: not-attached: Channel 2 is not > attached (qpid/amqp_0_10/SessionHandler.cpp:56) > <snip> > ... > </snip> > 2008-oct-24 14:01:02 error Channel exception: not-attached: Channel 2 is not > attached (qpid/amqp_0_10/SessionHandler.cpp:56) > 2008-oct-24 14:01:02 error Channel exception: not-attached: Channel 2 is not > attached (qpid/amqp_0_10/SessionHandler.cpp:56) > 2008-oct-24 14:01:02 error Channel exception: not-attached: Channel 2 is not > attached (qpid/amqp_0_10/SessionHandler.cpp:56) > Program received signal SIGSEGV, Segmentation fault. > [Switching to Thread 0x415a5950 (LWP 16649)] > 0x00007f83c3b96b74 in qpid::sys::AggregateOutput::doOutput (this=0xa1b0a0) at > qpid/sys/AggregateOutput.cpp:49 > 49 result = tasks[next++]->doOutput(); > (gdb) bt full > #0 0x00007f83c3b96b74 in qpid::sys::AggregateOutput::doOutput (this=0xa1b0a0) > at qpid/sys/AggregateOutput.cpp:49 > result = <value optimized out> > #1 0x00007f83c3f2b299 in qpid::broker::Connection::doOutput (this=0xa1b030) > at > qpid/broker/Connection.cpp:217 > No locals. > #2 0x00007f83c3f02776 in qpid::amqp_0_10::Connection::encode (this=0xa1c320, > buffer=0x9faba0 "\017", size=<value optimized out>) > at qpid/amqp_0_10/Connection.cpp:86 > out = {size = 65536, data = 0x9faba0 "\017", position = 98, r_position = 0} > frameSize = 98 > __PRETTY_FUNCTION__ = "virtual size_t > qpid::amqp_0_10::Connection::encode(const char*, size_t)" > stmt_ = {enabled = false, file = 0x7f83c3fb3e23 > "qpid/amqp_0_10/Connection.cpp", line = 78, > function = 0x7f83c3fb4060 "virtual size_t > qpid::amqp_0_10::Connection::encode(const char*, size_t)", level = > qpid::log::trace} > init_ = {statement = @0x7f83c4210b80} > stmt_ = {enabled = false, file = 0x7f83c3fb3e23 > "qpid/amqp_0_10/Connection.cpp", line = 83, > function = 0x7f83c3fb4060 "virtual size_t > qpid::amqp_0_10::Connection::encode(const char*, size_t)", level = > qpid::log::trace} > init_ = {statement = @0x7f83c4210b40} > #3 0x00007f83c3b97aa9 in qpid::sys::AsynchIOHandler::idle (this=0xa1eee0) at > qpid/sys/AsynchIOHandler.cpp:166 > buff = <value optimized out> > encoded = 7301231304930963497 > #4 0x00007f83c3b4ca47 in boost::function1<void, qpid::sys::AsynchIO&, > std::allocator<boost::function_base> >::operator() (this=<value optimized > out>, > [EMAIL PROTECTED]) at > /usr/include/boost/function/function_template.hpp:692 > No locals. > #5 0x00007f83c3b4a317 in qpid::sys::posix::AsynchIO::writeable > (this=0x9da440, > [EMAIL PROTECTED]) at qpid/sys/posix/AsynchIO.cpp:530 > writeTotal = 0 > __PRETTY_FUNCTION__ = "void > qpid::sys::posix::AsynchIO::writeable(qpid::sys::DispatchHandle&)" > #6 0x00007f83c3b9a7f7 in boost::function1<void, qpid::sys::DispatchHandle&, > std::allocator<boost::function_base> >::operator() (this=<value optimized > out>, > [EMAIL PROTECTED]) at > /usr/include/boost/function/function_template.hpp:692 > No locals. > #7 0x00007f83c3b9a5b0 in qpid::sys::DispatchHandle::processEvent > (this=0x9da448, type=qpid::sys::Poller::READ_WRITABLE) at > qpid/sys/DispatchHandle.cpp:360 > __PRETTY_FUNCTION__ = "virtual void > qpid::sys::DispatchHandle::processEvent(qpid::sys::Poller::EventType)" > #8 0x00007f83c3b98e18 in qpid::sys::Dispatcher::run (this=0x7fffcc212e80) at > qpid/sys/Poller.h:105 > event = {handle = 0x9da448, type = qpid::sys::Poller::READ_WRITABLE} > __PRETTY_FUNCTION__ = "virtual void qpid::sys::Dispatcher::run()" > #9 0x00007f83c3b4e98a in runRunnable (p=0xc2cc78) at > qpid/sys/posix/Thread.cpp:35 > No locals. > #10 0x000000379880729a in start_thread (arg=<value optimized out>) at > pthread_create.c:297 > __res = <value optimized out> > pd = <value optimized out> > unwind_buf = Could not find the frame base for "start_thread". -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.