[QFJ-745] "MsgSeqNum too high" error as result of "QFJ Message Processor" could parse income messages on SSL Connections Created: 23/May/13  Updated: 11/Jun/13

Status: Open
Project: QuickFIX/J
Component/s: Networking
Affects Version/s: 1.5.3
Fix Version/s: None

Type: Bug Priority: Default
Reporter: Andrey Nalitkin Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: sequnece, ssl, testRequest
Environment:

CentOS release 5.9 (Final)
Linux dev99 2.6.18-348.6.1.el5 #1 SMP Tue May 21 15:29:55 EDT 2013 x86_64 x86_64 x86_64 GNU/Linux

java version "1.6.0_32"
Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)



 Description   

QFJ Message Processor thread could parse income message queue and

Name: QFJ Message Processor
State: RUNNABLE
Total blocked: 1 Total waited: 8,038

Stack trace:
quickfix.mina.AbstractIoHandler.messageReceived(AbstractIoHandler.java:104)
org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:570)
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:58)
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:299)
org.apache.mina.common.support.AbstractIoFilterChain.access$1100(AbstractIoFilterChain.java:53)
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:648)
org.apache.mina.filter.support.SSLHandler.flushScheduledEvents(SSLHandler.java:275)
org.apache.mina.filter.SSLFilter.filterWrite(SSLFilter.java:512)
org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:361)
org.apache.mina.common.support.AbstractIoFilterChain.access$1300(AbstractIoFilterChain.java:53)
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:659)
org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolEncoderOutputImpl.doFlush(ProtocolCodecFilter.java:369)
org.apache.mina.filter.codec.support.SimpleProtocolEncoderOutput.flush(SimpleProtocolEncoderOutput.java:97)
org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilter.java:215)
org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:361)
org.apache.mina.common.support.AbstractIoFilterChain.access$1300(AbstractIoFilterChain.java:53)
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(AbstractIoFilterChain.java:659)
org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.filterWrite(AbstractIoFilterChain.java:587)
org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(AbstractIoFilterChain.java:361)
org.apache.mina.common.support.AbstractIoFilterChain.fireFilterWrite(AbstractIoFilterChain.java:355)
org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl.java:166)
org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:177)
org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:168)
quickfix.mina.IoSessionResponder.send(IoSessionResponder.java:47)
quickfix.Session.send(Session.java:2483)

  • locked java.lang.String@73013e68
    quickfix.Session.sendRaw(Session.java:2414)
    quickfix.Session.generateHeartbeat(Session.java:1827)
    quickfix.Session.next(Session.java:1800)
    quickfix.Session.next(Session.java:1101)
    quickfix.mina.SingleThreadedEventHandlingStrategy$SessionMessageEvent.processMessage(SingleThreadedEventHandlingStrategy.java:114)
    quickfix.mina.SingleThreadedEventHandlingStrategy.block(SingleThreadedEventHandlingStrategy.java:77)
    quickfix.mina.SingleThreadedEventHandlingStrategy$1.run(SingleThreadedEventHandlingStrategy.java:94)
    java.lang.Thread.run(Thread.java:662)


 Comments   
Comment by Christoph John [ 24/May/13 ]

Please excuse me, could you please elaborate on what exactly the problem is? Thank you.

Comment by Andrey Nalitkin [ 24/May/13 ]

Problem in concurrent parsing and modification of incoming MsgSeqNum counter by 2 threads:
1. "QFJ Message Processor" thread
2. "SocketConnectorIoProcessor" thread

As result SocketConnectorIoProcessor "lose" messages, report error and request to resend

Comment by Christoph John [ 11/Jun/13 ]

Do you have some more information on this? Message logs maybe?
The stack trace only lists one thread. Do you also have a stack trace of the other involved threads?

Generated at Mon May 06 07:13:01 UTC 2024 using JIRA 7.5.2#75007-sha1:9f5725bb824792b3230a5d8716f0c13e296a3cae.