[QFJ-301] Sending invalid requests may force Executor into an unstable state Created: 12/Mar/08  Updated: 07/Aug/08  Resolved: 11/Apr/08

Status: Closed
Project: QuickFIX/J
Component/s: Examples
Affects Version/s: 1.3.1
Fix Version/s: 1.3.2

Type: Bug Priority: Default
Reporter: Hiranya Jayathilaka Assignee: Unassigned
Resolution: Fixed Votes: 0
Labels: None
Environment:

Ubuntu 7.10, Java 5



 Description   

Steps to reproduce the faulty state;

1. Start Banzai and Executor
2. In Banzai specify the side to be 'Cross' and send a message (This will give an exception in Executor side)
3. Now send a valid message from Banzai (specifying the side as Buy or Sell)

Doing this will force Executor to an infinite loop giving the following output over and over...

<20080312-03:48:59, FIX.4.1:EXEC->BANZAI, incoming> (8=FIX.4.19=12535=D34=443=Y49=BANZAI52=20080312-03:48:5956=EXEC122=20080312-03:48:5711=120529373765021=138=540=154=155=IBM59=010=103)
<20080312-03:48:59, FIX.4.1:EXEC->BANZAI, event> (MsgSeqNum too high, expecting 3 but received 4)
<20080312-03:48:59, FIX.4.1:EXEC->BANZAI, outgoing> (8=FIX.4.19=6435=234=3549=EXEC52=20080312-03:48:5956=BANZAI7=316=99999910=200)
<20080312-03:48:59, FIX.4.1:EXEC->BANZAI, event> (Sent ResendRequest FROM: 3 TO: 999999)
<20080312-03:48:59, FIX.4.1:EXEC->BANZAI, incoming> (8=FIX.4.19=12535=D34=343=Y49=BANZAI52=20080312-03:48:5956=EXEC122=20080312-03:48:5411=120529373427321=138=540=154=855=IBM59=010=104)
<20080312-03:48:59, FIX.4.1:EXEC->BANZAI, event> (ResendRequest for messages FROM 3 TO 3 has been satisfied.)
<20080312-03:48:59, FIX.4.1:EXEC->BANZAI, event> (Invalid order side: 8
java.lang.RuntimeException: Invalid order side: 8
at quickfix.examples.executor.Application.getPrice(Application.java:185)
at quickfix.examples.executor.Application.onMessage(Application.java:204)
at quickfix.fix41.MessageCracker.crack41(MessageCracker.java:205)
at quickfix.MessageCracker.crack(MessageCracker.java:45)
at quickfix.examples.executor.Application.fromApp(Application.java:131)
at quickfix.Session.fromCallback(Session.java:1287)
at quickfix.Session.verify(Session.java:1245)
at quickfix.Session.verify(Session.java:1316)
at quickfix.Session.next(Session.java:727)
at quickfix.mina.SingleThreadedEventHandlingStrategy$SessionMessageEvent.processMessage(SingleThreadedEventHandlingStrategy.java:106)
at quickfix.mina.SingleThreadedEventHandlingStrategy.block(SingleThreadedEventHandlingStrategy.java:70)
at quickfix.mina.SingleThreadedEventHandlingStrategy$1.run(SingleThreadedEventHandlingStrategy.java:86)
at java.lang.Thread.run(Thread.java:595)
)



 Comments   
Comment by Steve Bate [ 11/Apr/08 ]

Modified Executor application to log an error during order processing instead of allowing the exception to propogate and rollback the session sequence number (causes an infinite resend loop between the executor and a client).

Generated at Sun May 05 01:32:51 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.