This crash seems to stop happening when I turn off compiler optimizations in the framing area.
Adam On Wed, Mar 4, 2009 at 11:33 AM, Adam Chase <[email protected]> wrote: > It is definitely possible that the build could have caused some of the > issues. That's why I listed the compiler version. > > valgrind = 3.3. > The OS and version is rare: > Linux version 2.6.24.7-9.smp.gcc3.4.x86_64 > (rap-master.rpath....@rpath:linux-1-devel) (gcc version 3.4.4) #1 SMP > Tue Jul 15 12:23:51 EDT 2008 > > But I have been able to get M4 to build on it with minor finagling. > Also now it builds more easily just --enable-warnings=no. > Would it help to send a log of the compile? I can try and dig into > this more deeply if that would help. Unfortunately I am not able to > convince people to upgrade our version of g++ and I think this is the > most likely suspect (though I have no evidence of this). > > > The broker definitely does crash regularly. > > The last point I log a message from my client, I had queried for a > queue and was about to declare, bind, send some messages, start a > subscriptionManager etc. I can try and pinpoint the client action > that causes the crash if needed. > > Here is a stacktrace: > > > SEG FAULT: > (gdb) where > #0 0x00002ad3c74f6c88 in main_arena () from /lib64/tls/libc.so.6 > #1 0x00002ad3c671a9ed in qpid::framing::AMQFrame::decode ( > this=0x7fffe489dc90, buff...@0x7fffe489de10) at intrusive_ptr.hpp:125 > #2 0x00002ad3c63f74dc in qpid::amqp_0_10::Connection::decode (this=0x538ec0, > buffer=0x7fffe489de10 "d", size=40) at memory:285 > #3 0x00002ad3c6743cc9 in qpid::sys::AsynchIOHandler::readbuff (this=0x538dd0, > buff=0x530a00) at qpid/sys/AsynchIOHandler.cpp:103 > #4 0x00002ad3c64efc61 in > boost::detail::function::function_obj_invoker2<boost::_bi::bind_t<bool, > boost::_mfi::mf2<bool, qpid::sys::AsynchIOHandler, > qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*>, > boost::_bi::list3<boost::_bi::value<qpid::sys::AsynchIOHandler*>, > boost::arg<1> (*)(), boost::arg<2> (*)()> >, bool, > qpid::sys::AsynchIO&, qpid::sys::AsynchIOBufferBase*>::invoke ( > function_obj_p...@0x57e890, a...@0x7fffe489de10, a1=0x530a00) > at mem_fn_template.hpp:273 > #5 0x00002ad3c66e2467 in boost::function2<bool, qpid::sys::AsynchIO&, > qpid::sys::AsynchIOBufferBase*, std::allocator<boost::function_base> >>::operator() ( > this=0x57e890, a...@0x7fffe489de10, a1=0x28) at function_template.hpp:824 > #6 0x00002ad3c66e1671 in qpid::sys::posix::AsynchIO::readable (this=0x5391f0, > �...@0x5391f8) at qpid/sys/posix/AsynchIO.cpp:446 > #7 0x00002ad3c66e492d in > boost::detail::function::void_function_obj_invoker1<boost::_bi::bind_t<void, > boost::_mfi::mf1<void, qpid::sys::posix::AsynchIO, > qpid::sys::DispatchHandle&>, > boost::_bi::list2<boost::_bi::value<qpid::sys::posix::AsynchIO*>, > boost::arg<1> (*)()> >, void, qpid::sys::DispatchHandle&>::invoke ( > ---Type <return> to continue, or q <return> to quit--- > function_obj_p...@0x57e890, a...@0x7fffe489de10) at mem_fn_template.hpp:162 > #8 0x00002ad3c67485e7 in boost::function1<void, > qpid::sys::DispatchHandle&, std::allocator<boost::function_base> >>::operator() (this=0x57e890, > ...@0x7fffe489de10) at function_template.hpp:824 > #9 0x00002ad3c67479f5 in qpid::sys::DispatchHandle::processEvent ( > this=0x5391f8, type=qpid::sys::Poller::READABLE) > at qpid/sys/DispatchHandle.cpp:443 > #10 0x00002ad3c66f3b7c in qpid::sys::Poller::run (this=0x52c670) > at Poller.h:122 > #11 0x00002ad3c63ff1fe in qpid::broker::Broker::run (this=0xffffffff) > at qpid/broker/Broker.cpp:318 > #12 0x000000000040bb5d in QpiddBroker::execute (this=0x57e890, > options=0x525fc0) at intrusive_ptr.hpp:125 > #13 0x0000000000408ce1 in main (argc=1, argv=0x7fffe489ef58) at memory:301 > > Thanks, > > Adam > > On Wed, Mar 4, 2009 at 10:36 AM, Andrew Stitcher <[email protected]> wrote: >> On Tue, 2009-03-03 at 21:43 -0500, Adam Chase wrote: >>> Make check was flawless on 32 bit linux with g++ 4.3.2. >>> >>> Got errors on a 64 bit linux g++ 3.4.4. >>> >>> It crashes pretty regularly on this platform. Is this platform supported? >> >> You're going to have to be a little more specific than that! >> >> What are the platforms you are talking about? >> OS/Version >> valgrind version >> >> We test on 64 bit Linux (Red Hat 4/5, Fedora 9,10) all the time so these >> platforms should definitely work >> >> >From a cursory look at your output I'd say it is what we'd expect from a >> platform we'd not tested before - we commonly see different valgrind >> complaints (many valid some not) when we use a platform we've not tested >> on before. >> >> BTW the "it" that is crashing is the unit test not the broker or client >> themselves. >> >> A crash in the unit_test like that will cause a lot of leak records >> because the program will be interrupted before cleaning up normally, so >> take the leaks with a grain of salt. >> >> The fact that the rest of the test fails to run makes me suspicious >> something funny is going on though with the make could ti be because you >> are using NFS for your build directory? >> >> Hope that helps/sheds some light. >> >> Andrew >> >> >> >> --------------------------------------------------------------------- >> Apache Qpid - AMQP Messaging Implementation >> Project: http://qpid.apache.org >> Use/Interact: mailto:[email protected] >> >> > --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
