Re: [Quickfix-developers] Crash w/QF 1.11.1
Brought to you by:
orenmnero
|
From: Brian E. <azz...@ya...> - 2006-04-21 21:23:42
|
Not so much a bug in the JVM as a runaway process. The stack trace you posted is clearly a case of recursion gone terribly wrong - it blew through the stack and then dumped. It's puzzling why it could manage to dump a stack trace to the console but didn't write the log file, but it could be due to the fact that it was the C++ part of the app that died - Java didn't really have anything to deal with. A cursory look at the code doesn't show any obvious loops, but I notice that ThreadedSocketConnection::read() will call Session::next when it has a timeout (line 96). That seems like a good place to look for a possible infinite recursion. - Brian Erst Thynk Software, Inc. ----- Original Message ---- From: Andrew Munn <an...@nm...> To: Oren Miller <or...@qu...> Cc: qui...@li... Sent: Friday, April 21, 2006 3:42:21 PM Subject: Re: [Quickfix-developers] Crash w/QF 1.11.1 QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html I know the file you're talking about and it wasn't created. I guess that means QF exposed a bug in the JVM? On Fri, 21 Apr 2006, Oren Miller wrote: > Java should have produced a log file after the crash. Do you have this file > and can you post it? > > --oren > > Andrew Munn wrote: > >> First time I saw it. I can't reproduce it. The app that did this has a >> single acceptor that takes connections from multiple traders and it has >> multiple initiators each of which talks to an exchange. I'm not sure which >> side of the program imploded but it happened when one of my workstations >> (using QF initiator) connected to the app. One or two more of these >> workstations were connected at the time of the event. When it crashed it >> could be that a message was on it's way in or out or neither. >> >> Andrew >> >> On Fri, 21 Apr 2006, Oren Miller wrote: >> >>> QuickFIX Documentation: >>> http://www.quickfixengine.org/quickfix/doc/html/index.html >>> QuickFIX Support: http://www.quickfixengine.org/services.html >>> >>> Is this the only time you have seen this? Was anything else going on at >>> the time? Were there other connected sessions? Was there a disconnect >>> and reconnect. Any additional information about what was happening at the >>> time would be helpful. >>> >>> --oren >>> >>> Andrew Munn wrote: >>> >>>> QuickFIX Documentation: >>>> http://www.quickfixengine.org/quickfix/doc/html/index.html >>>> QuickFIX Support: http://www.quickfixengine.org/services.html >>>> >>>> My application, using ThreadedSocketAcceptor, just crashed when a client >>>> connected. some of the error scrolled off the screen but I was left with >>>> this: >>>> >>>> in a notification box:" Runtime Error: program: >>>> c:\jdk1.0.0_06\bin\java.exe This applications has requested the Runtime >>>> to terminate it in an unusual way. Please contact the applicatin's >>>> support team for mroe information." >>>> >>>> in the dos cmd window: >>>> >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1211) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1211) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketAcceptor::socketThread(.\ThreadedSocketAcceptor.cpp:186) >>>> thread(3548): >>>> at process_sleep(.\Utility.cpp:372) >>>> at ThreadedSocketInitiator::onStart(.\ThreadedSocketInitiator.cpp:72) >>>> at Initiator::startThread(.\Initiator.cpp:240) >>>> thread(3596): >>>> at message_order::operator=(.\MessageSorters.cpp:65) >>>> at Session::nextQueued(.\Session.cpp:1157) >>>> at Session::nextQueued(.\Session.cpp:1151) >>>> at Session::nextHeartbeat(.\Session.cpp:255) >>>> at Session::next(.\Session.cpp:1211) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketInitiator::socketThread(.\ThreadedSocketInitiator.cpp:214) >>>> thread(3668):struct FIX::IOException: IO Error >>>> at Session::lookupSession(.\Session.cpp:1395) >>>> at Session::lookupSession(.\Session.cpp:1408) >>>> at >>>> ThreadedSocketConnection::setSession(.\ThreadedSocketConnection.cpp:167) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketAcceptor::socketThread(.\ThreadedSocketAcceptor.cpp:186) >>>> thread(3716): >>>> at process_sleep(.\Utility.cpp:372) >>>> at ThreadedSocketInitiator::onStart(.\ThreadedSocketInitiator.cpp:72) >>>> at Initiator::startThread(.\Initiator.cpp:240) >>>> thread(3732):class std::logic_error: MsgSeqNum too low, expecting 19 but >>>> receive >>>> d 7 >>>> at Session::lookupSession(.\Session.cpp:1395) >>>> at Session::lookupSession(.\Session.cpp:1408) >>>> at >>>> ThreadedSocketConnection::setSession(.\ThreadedSocketConnection.cpp:167) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketAcceptor::socketThread(.\ThreadedSocketAcceptor.cpp:186) >>>> thread(3856): >>>> at FieldMap::clear(.\FieldMap.cpp:165) >>>> at FieldMap::operator=(.\FieldMap.cpp:40) >>>> at Session::sendRaw(.\Session.cpp:428) >>>> at Session::send(.\Session.cpp:418) >>>> at Session::sendToTarget(.\Session.cpp:1348) >>>> thread(4020): >>>> at message_order::operator=(.\MessageSorters.cpp:65) >>>> at Session::nextQueued(.\Session.cpp:1157) >>>> at Session::nextQueued(.\Session.cpp:1151) >>>> at Session::nextHeartbeat(.\Session.cpp:255) >>>> at Session::next(.\Session.cpp:1211) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketInitiator::socketThread(.\ThreadedSocketInitiator.cpp:214) >>>> thread(4080): >>>> at message_order::operator=(.\MessageSorters.cpp:65) >>>> at Session::nextQueued(.\Session.cpp:1157) >>>> at Session::nextQueued(.\Session.cpp:1151) >>>> at Session::nextHeartbeat(.\Session.cpp:255) >>>> at Session::next(.\Session.cpp:1211) >>>> at Session::next(.\Session.cpp:1185) >>>> at >>>> ThreadedSocketConnection::processStream(.\ThreadedSocketConnection.cpp:139) >>>> at ThreadedSocketConnection::read(.\ThreadedSocketConnection.cpp:76) >>>> at >>>> ThreadedSocketInitiator::socketThread(.\ThreadedSocketInitiator.cpp:214) >>>> thread(2168): >>>> at process_sleep(.\Utility.cpp:372) >>>> at ThreadedSocketInitiator::onStart(.\ThreadedSocketInitiator.cpp:72) >>>> at Initiator::startThread(.\Initiator.cpp:240) >>>> thread(2776): >>>> at process_sleep(.\Utility.cpp:372) >>>> at ThreadedSocketInitiator::onStart(.\ThreadedSocketInitiator.cpp:72) >>>> at Initiator::startThread(.\Initiator.cpp:240) >>>> thread(3388): >>>> at process_sleep(.\Utility.cpp:372) >>>> at ThreadedSocketInitiator::onStart(.\ThreadedSocketInitiator.cpp:72) >>>> at Initiator::startThread(.\Initiator.cpp:240) >>>> thread(3396): >>>> at process_sleep(.\Utility.cpp:372) >>>> at ThreadedSocketInitiator::onStart(.\ThreadedSocketInitiator.cpp:72) >>>> at Initiator::startThread(.\Initiator.cpp:240) >>>> thread(3716): >>>> at process_sleep(.\Utility.cpp:372) >>>> at ThreadedSocketInitiator::onStart(.\ThreadedSocketInitiator.cpp:72) >>>> at Initiator::startThread(.\Initiator.cpp:240) >>>> >>>> Thanks, >>>> Andrew >>>> >>>> >>>> ------------------------------------------------------- >>>> Using Tomcat but need to do more? Need to support web services, security? >>>> Get stuff done quickly with pre-integrated technology to make your job >>>> easier >>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache >>>> Geronimo >>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >>>> _______________________________________________ >>>> Quickfix-developers mailing list >>>> Qui...@li... >>>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >>>> >>>> >>> >>> >>> ------------------------------------------------------- >>> Using Tomcat but need to do more? Need to support web services, security? >>> Get stuff done quickly with pre-integrated technology to make your job >>> easier >>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >>> _______________________________________________ >>> Quickfix-developers mailing list >>> Qui...@li... >>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >>> >> >> > ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |