当我们收到来自交易对手的非常大的消息时,我们正面临quickfix库中的崩溃。我在机器上放置了一个调试版本,崩溃转储在消息下面。
我在CentOS 6.x上使用quickfix版本1.13.3,gcc 4.4.7,当我查看FieldMap时:174,它是一个删除语句。
此处可能会报告与分配器类似的问题: http://sourceforge.net/p/quickfix/mailman/message/10833533/
似乎已在1.12.4中修复。但是,由于我使用的是更高版本,因此不应该出现这种情况。
我机器上的配置脚本提供了与分配器相关的以下输出:
检查boost :: pool_allocator ...是的 检查boost :: fast_pool_allocator ...是的 检查__gnu_cxx :: __ pool_alloc ...是的 检查__gnu_cxx :: __ mt_alloc ...是的 检查__gnu_cxx :: bitmap_allocator ...是
有关如何解决此问题的任何指示?
堆栈追踪:
(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