Re: [Quickfix-users] Crash with quickfix 1.13.3 in dtor of FieldMap
Brought to you by:
orenmnero
From: Harwinder S. <har...@ut...> - 2015-11-10 11:28:21
|
I tried upgrading to quickfix 1.14.3 and I am getting a similar crash: (gdb) bt #0 0x00007f8af46214b6 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() () from /usr/lib64/libstdc++.so.6 #1 0x0000000000575132 in FIX::FieldBase::~FieldBase (this=0x7f8ae0004f08, __in_chrg=<value optimized out>) at /home/hss/quickinstall14/include/quickfix/Field.h:91 #2 0x000000000060be1e in std::pair<int const, FIX::FieldBase>::~pair (this=0x7f8ae0004f00, __in_chrg=<value optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_pair.h:68 #3 0x0000000000616292 in __gnu_cxx::new_allocator<std::pair<int const, FIX::FieldBase> >::destroy (this=0x7f8aee5a947f, __p=0x7f8ae0004f00) at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/ext/new_allocator.h:115 #4 0x00000000006131eb in std::_Rb_tree<int, std::pair<int const, FIX::FieldBase>, std::_Select1st<std::pair<int const, FIX::FieldBase> >, FIX::message_order, std::allocator<std::pair<int const, FIX::FieldBase> > >::_M_destroy_node (this=0x7f8ae00044c8, __p=0x7f8ae0004ee0) at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_tree.h:383 #5 0x0000000000610f39 in std::_Rb_tree<int, std::pair<int const, FIX::FieldBase>, std::_Select1st<std::pair<int const, FIX::FieldBase> >, FIX::message_order, std::allocator<std::pair<int const, FIX::FieldBase> > >::_M_erase (this=0x7f8ae00044c8, __x=0x7f8ae0004ee0) at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_tree.h:972 #6 0x0000000000610f16 in std::_Rb_tree<int, std::pair<int const, FIX::FieldBase>, std::_Select1st<std::pair<int const, FIX::FieldBase> >, FIX::message_order, std::allocator<std::pair<int const, FIX::FieldBase> > >::_M_erase (this=0x7f8ae00044c8, __x=0x7f8ae00045e0) at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_tree.h:970 #7 0x00007f8af4eaa7de in clear (this=<value optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_tree.h:726 #8 clear (this=<value optimized out>) at /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_multimap.h:562 #9 FIX::FieldMap::clear (this=<value optimized out>) at FieldMap.cpp:145 #10 0x00007f8af4eaaf6e in FIX::FieldMap::~FieldMap (this=0x7f8ae00044c0, __in_chrg=<value optimized out>) at FieldMap.cpp:35 #11 0x000000000060cca1 in FIX::Group::~Group (this=0x7f8ae00044c0, __in_chrg=<value optimized out>) at /home/hss/quickinstall14/include/quickfix/fix44/../Group.h:41 #12 0x000000000060ccd0 in FIX::Group::~Group (this=0x7f8ae00044c0, __in_chrg=<value optimized out>) at /home/hss/quickinstall14/include/quickfix/fix44/../Group.h:41 #13 0x00007f8af4eaa827 in FIX::FieldMap::clear (this=0x7f8aee5a9640) at FieldMap.cpp:152 #14 0x00007f8af4eaaf6e in FIX::FieldMap::~FieldMap (this=0x7f8aee5a9640, __in_chrg=<value optimized out>) at FieldMap.cpp:35 #15 0x0000000000633ddc in FIX::Message::~Message (this=0x7f8aee5a9640, __in_chrg=<value optimized out>) at /home/hss/quickinstall14/include/quickfix/Message.h:68 #16 0x00007f8af4e5b2cf in FIX::Session::next (this=0x1374fd0, msg= "8=FIX.4.4\001\071=166622\001\063\065=W\001\063\064=3\001\064\071=BCSG\001\065\062=20151110-11:24:45.464\001\065\066=BTFOREXCERT\001\065\065=LAN\001\061\066\067=CS\001\062\060\067=XSGO\001\062\066\062=2\001\062\066\070=938\001\062\066\071=5\001\062\067\060=3998.8\001\062\067\062=20151109\001\062\070\066=6\001\062\071\060=1\001\062\066\071=7\001\062\067\060=4150\001\062\071\060=1\001\062\066\071=8\001\062\067\060=3950.1\001\062\071\060=1\001"..., timeStamp=..., queued=<value optimized out>) at Session.cpp:1189 #17 0x00007f8af4e8238c in FIX::SocketConnection::readMessages (this=0x7f8ae0000fd0, s=...) at SocketConnection.cpp:224 #18 0x00007f8af4e82575 in FIX::SocketConnection::read (this=0x7f8ae0000fd0, s=...) at SocketConnection.cpp:113 #19 0x00007f8af4e73241 in FIX::ConnectorWrapper::onEvent (this=0x7f8aee5a9d60, socket=19) at SocketConnector.cpp:59 #20 0x00007f8af4e8092d in FIX::SocketMonitor::processReadSet (this=0xeee5e0, strategy=..., readSet=...) at SocketMonitor.cpp:260 #21 0x00007f8af4e8148d in FIX::SocketMonitor::block (this=0xeee5e0, strategy=..., poll=false, timeout=<value optimized out>) at SocketMonitor.cpp:219 #22 0x00007f8af4e730d8 in FIX::SocketConnector::block (this=<value optimized out>, strategy=<value optimized out>, poll=<value optimized out>, timeout=<value optimized out>) at SocketConnector.cpp:114 #23 0x00007f8af4e7cc55 in FIX::SocketInitiator::onStart (this=0xeee330) at SocketInitiator.cpp:92 #24 0x00007f8af4e7643a in FIX::Initiator::startThread (p=<value optimized out>) at Initiator.cpp:286 #25 0x00007f8af48919d1 in start_thread () from /lib64/libpthread.so.0 #26 0x00007f8af3e3e8fd in clone () from /lib64/libc.so.6 On Tue, Nov 10, 2015 at 1:38 PM, Harwinder Sidhu < har...@ut...> wrote: > Hi, > > We are facing a crash in the quickfix library, when we are receivng a very > large message from the counterparty. I put a debug build on the machine and > the crash dump is below the message. > > I am using quickfix version 1.13.3, gcc 4.4.7 on CentOS 6.x and when I > looked at FieldMap:174, it is a delete statement. > > A similar issue with allocators is probably reported here: > http://sourceforge.net/p/quickfix/mailman/message/10833533/ > > which seems to be have been fixed in 1.12.4. However, since I’m using a > later version, this should not be the case here. > > The configure script on my machine gives the following output related to > the allocators: > > checking for boost::pool_allocator... yes > checking for boost::fast_pool_allocator... yes > checking __gnu_cxx::__pool_alloc... yes > checking __gnu_cxx::__mt_alloc... yes > checking __gnu_cxx::bitmap_allocator... yes > > Any pointers on how can I go about fixing this issue? > > Best Regards, > Harwinder > > > Stack Trace: > > (gdb) bt > #0 0x00007ffff6858084 in FIX::FieldMap::clear (this=0x7ffff5271630) at > FieldMap.cpp:174 > #1 0x00007ffff6858a49 in FIX::FieldMap::~FieldMap (this=0x7ffff5271630, > __in_chrg=<value optimized out>) at FieldMap.cpp:35 > #2 0x000000000061bf66 in FIX::Message::~Message (this=0x7ffff5271630, > __in_chrg=<value optimized out>) > at /usr/local/include/quickfix/Message.h:58 > #3 0x00007ffff6806d14 in FIX::Session::next (this=0x9c6480, msg= > "8=FIX.4.4\001\071=166387\001\063\065=W\001\063\064=3\001\064\071=BCSGATEWAY\001\065\062=20151109-21:10:23.243\001\065\066=MDFOREX\001\065\065=LAN\001\061\066\067=CS\001\062\060\067=XSGO\001\062\066\062=1\001\062\066\070=935\001\062\066\071=5\001\062\067\060=3998.8\001\062\067\062=20151109\001\062\070\066=6\001\062\071\060=1\001\062\066\071=7\001\062\067\060=4150\001\062\071\060=1\001\062\066\071=8\001\062\067\060=3950.1\001\062\071\060="..., > timeStamp=..., queued=<value optimized out>) at Session.cpp:1309 > #4 0x00007ffff682fecc in FIX::SocketConnection::readMessages > (this=0x7fffe8000f90, s=...) at SocketConnection.cpp:234 > #5 0x00007ffff682fff5 in FIX::SocketConnection::read > (this=0x7fffe8000f90, s=...) at SocketConnection.cpp:124 > #6 0x00007ffff6821e51 in FIX::ConnectorWrapper::onEvent > (this=0x7ffff5271d60, socket=23) at SocketConnector.cpp:67 > #7 0x00007ffff682e03d in FIX::SocketMonitor::processReadSet > (this=0x9cb0a0, strategy=..., readSet=...) at SocketMonitor.cpp:287 > #8 0x00007ffff682edcd in FIX::SocketMonitor::block (this=0x9cb0a0, > strategy=..., poll=false, timeout=<value optimized out>) > at SocketMonitor.cpp:243 > #9 0x00007ffff6821cc8 in FIX::SocketConnector::block (this=<value > optimized out>, strategy=<value optimized out>, > poll=<value optimized out>, timeout=<value optimized out>) at > SocketConnector.cpp:144 > #10 0x00007ffff682b021 in FIX::SocketInitiator::onStart (this=0x9cadf0) at > SocketInitiator.cpp:96 > #11 0x00007ffff68247fa in FIX::Initiator::startThread (p=<value optimized > out>) at Initiator.cpp:336 > #12 0x0000003284c07a51 in start_thread () from /lib64/libpthread.so.0 > #13 0x00000032848e893d in clone () from /lib64/libc.so.6 > > (gdb) > > |