Thread: [Quickfix-developers] ResendRequest and quickfix 1.4.1
Brought to you by:
orenmnero
From: Bishop, B. <Bar...@gs...> - 2003-04-09 14:11:08
|
Hi, I have just built quickfix 1.4.1 with GCC 2.95 and STLport on solaris. All my previous problems have been fixed, except I now have a new one. My java application aborts with a core when processing a ResendRequest message. It didn't do this with quickfix 1.3.2 and my java code hasn't changed. The resend is fulfilled, as I see the messages being resent. However, after the last one, the application dies. I have a stack trace (see below) that seems to suggest something is going wrong in the JNI layer, specifically JavaApplication.toApp(). I think '__check_eh_spec' must be something to do with C++ exception handling. I have attached my (java) implementation of Application.toApp() that gets called. Thanks for any help guys, barry bishop ############################################################################ ###### ATTACHMENTS ############################################################################ ###### Implementation of 'org.quickfix.Application.toApp' ================================================== public void toApp(Message message, SessionID sessionId) throws DoNotSend { // throwing a DoNotSend from here stops the message being sent. boolean send = true; org.quickfix.field.PossDupFlag possDup = new org.quickfix.field.PossDupFlag(); try { message.getHeader().getField( possDup ); // Is this field a duplicate? if ( possDup.getValue() == org.quickfix.field.PossDupFlag.POSSIBLE_DUPLICATE ) { // Yes. Is it a quote? if ( message instanceof org.quickfix.fix42.Quote ) { send = false; } } } catch ( FieldNotFound fnf ) { // Definitely not a duplicate } if ( ! send ) throw new DoNotSend(); // Everything we send comes via this callback. audit( "toApp", message, sessionId ); } STACK ===== ----------------- lwp# 25 / thread# 25 -------------------- ff31acfc _lwp_kill (6, 0, 0, ffffffff, ff33c3ec, ff3c2474) + 8 ff2b563c abort (ff338000, f3c2c31c, 11, 1, ff3e260c, fdc10290) + 100 f40de394 __default_terminate (14c, f46cf564, f40de390, ff3e260c, 2979c, ff3c2474) + 4 f40df214 terminate__Fv (f40df280, f3c29dcc, 18, 1, ff3e260c, fdc10290) + 20 f40df220 __default_unexpected__Fv (48, f46cf590, f40df21c, 2a0f48, 0, 0) + 4 f40df2a0 unexpected__Fv (0, 4, 2a0f48, f4af3000, 81010100, ff00) + 20 f40df564 __check_eh_spec (1, f587ecb4, f49eb9d0, f49eb800, 1097c0, 8f2a4) + 60 f410abe0 toApp__15JavaApplicationRQ23FIX7MessageRCQ23FIX9SessionID (1128e0, f587e e78, 354974, f410a93c, 0, 53) + 2a4 f413c2f4 resend__Q23FIX7SessionRQ23FIX7Message (354970, f587ee78, 354b20, f587efb 8, f587f0f4, f587f330) + 174 f413b1e4 nextResendRequest__Q23FIX7SessionRCQ23FIX7Message (354970, f587f330, f46 95c00, 354b20, 0, 0) + 4d8 f41417d4 next__Q23FIX7SessionRCQ23FIX7Message (354970, f587f330, 354b20, 0, 0, 0) + 394 f41413c0 next__Q23FIX7SessionRCQ24_STLt12basic_string3ZcZQ24_STLt11char_traits1Zc ZQ24_STLt9allocator1Zc (354970, f587f450, 0, 3b5118, 6f0, 0) + 3c f41528d8 read__Q23FIX16SocketConnectionRQ23FIX15SocketConnector (2e0e70, 10d0a4, f587f4e0, 5000, ff33b1bc, ffffffff) + 8c f4155028 onData__Q23FIX15SocketInitiatorRQ23FIX15SocketConnectori (10cfd8, 10d0a4 , 15, f4154f9c, 160, f587d4f0) + 8c f464a58c onEvent__Q23FIX16ConnectorWrapperRQ23FIX13SocketMonitori (f587f6e8, 10d0 a4, 15, f464a510, 10d0a8, 0) + 7c f4156bd4 block__Q23FIX13SocketMonitorRQ33FIX13SocketMonitor8Strategy (10d0a4, f58 7f6e8, 10d05c, f4154974, 1, f587f6fc) + 2d0 f4153ef8 block__Q23FIX15SocketConnectorRQ33FIX15SocketConnector8Strategy (10d0a4, 10d05c, 0, 0, ff382000, 0) + 2c f4154944 onStart__Q23FIX15SocketInitiator (10cfd8, 10cfd8, f4154910, f4686c00, ec , 0) + 34 f4108c20 start__Q23FIX9Initiator (10cfd8, 6, 269d8, f587f970, ff1fe2a0, ff209990) + 1a8 f41343d8 Java_org_quickfix_SocketInitiator_doStart (8f2a4, f587fa64, f587fc48, 0, 1, 0) + 2c 0007a8f0 ???????? (f64689a0, f587fc48, 8f220, ff1fe2a0, b7, f9d59260) 00077a74 ???????? (f64689a0, 79abc, 8f220, 80bc8, f9a86030, 0) 00077d1c ???????? (f6f7e7d0, 79abc, f587fbdc, 80d68, ff1fe2a0, 0) 00077d1c ???????? (0, 1, ff20a500, 82ebc, 1e, e) ff232454 __1cMStubRoutinesG_code1_ (f587fc68, f587fea0, a, f9816050, 79abc, f587f dec) + 410 fefcd23c __1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArgu ments_pnGThread__v_ (f587fe98, ff1fe2a0, f587fde4, 8f220, 79abc, f587fea0) + 308 fefcc8d4 __1cJJavaCallsMcall_virtual6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4 pnRJavaCallArguments_pnGThread__v_ (f9816cc8, f587fdd0, f587fdd4, ff1fe2a0, f587fe 98, f587fde4) + 150 fefcc944 __1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbo lHandle_5pnGThread__v_ (f587fe98, f587fe94, f587fe90, f587fe84, f587fe7c, 8f220) + 60 feffd7d8 __1cMthread_entry6FpnKJavaThread_pnGThread__v_ (f9816cc8, 8f220, ff1fe2a 0, ff1fe2a0, 3, 8f220) + 17c ff0d5078 __1cKJavaThreadDrun6M_v_ (f5800000, ff207d18, ff1fe2a0, 80000, 8f220, 80 000) + 36c ff070918 _start (ff1fe2a0, 0, 0, 0, 0, 0) + 20 ff370694 _lwp_start (0, 0, 0, 0, 0, 0) |
From: Joerg T. <Joe...@ma...> - 2003-04-10 09:54:23
|
Bishop, Barry wrote: > I have just built quickfix 1.4.1 with GCC 2.95 and STLport on solaris. > > All my previous problems have been fixed, except I now have a new one. > > My java application aborts with a core when processing a ResendRequest > message. It didn't do this with quickfix 1.3.2 and my java code hasn't > changed. OK, just a quick shot before I am leaving for today (it's 5 p.pm. in Germany now): It seems to have to do with exceptions ( EH = exception handler? ), exceptions and shared libs do not work together well until you have a shared libgcc. And a shared libgcc you have starting with GCC 3.0. I cite the GCC 3.0 info docs: There are several situations in which an application should use the shared `libgcc' instead of the static version. The most common of these is when the application wishes to throw and catch exceptions across different shared libraries. In that case, each of the libraries as well as the application itself should use the shared `libgcc'. So I strongly encourage you to switch to GCC 3.2. (GCC 3.0 has probably other problems.) Note to use libtool 1.5 for this. Good luck Jörg -- Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |