You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Gordon Sim (JIRA)" <qp...@incubator.apache.org> on 2008/10/30 12:29:44 UTC
[jira] Created: (QPID-1417) Seg fault caused by bad pointer in
AggregateOutputControl
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>,
a0=@0xa1b970) at /usr/include/boost/function/function_template.hpp:692
No locals.
#5 0x00007f83c3b4a317 in qpid::sys::posix::AsynchIO::writeable (this=0x9da440,
h=@0x9da448) 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>,
a0=@0xa1b970) 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.
[jira] Resolved: (QPID-1417) Seg fault caused by bad pointer in
AggregateOutputControl
Posted by "Gordon Sim (JIRA)" <qp...@incubator.apache.org>.
[ 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>,
> a0=@0xa1b970) at /usr/include/boost/function/function_template.hpp:692
> No locals.
> #5 0x00007f83c3b4a317 in qpid::sys::posix::AsynchIO::writeable (this=0x9da440,
> h=@0x9da448) 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>,
> a0=@0xa1b970) 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.