{{Quickfixn}} Possible bug in QuickFIX/n?

Tom Boyce tom at algodesignsolutions.com
Tue Sep 4 07:43:17 PDT 2012


We ran into a similar issue with TT.  TT indicates that the spec says that
it does not need to be sent with administrative messages, and that they
have requested a clarification of the documentation to better reflect this.

On Tue, Sep 4, 2012 at 4:04 AM, Thomas Fleming <thomas.fleming at sucfin.com>wrote:

>  We are currently failing a conformance test with BARX, and are trying to
> decide if there is a bug in the QuickFIX/n engine, or not. Apologies for
> the long message, I wanted to provide as much detail as possible.****
>
> ** **
>
> The issue: We are sending a resend request. Barx is replying with 2
> ExecutionReports followed by a SequenceReset message. All three messages
> have the PossDupFlag=Y. QuickFix is rejecting the SequenceReset message
> because it does not have field 122 (OrigSendingTime) present. Barclays say
> that the third message should not be rejected.****
>
> ** **
>
> According to FIXimate, for field 122 (OrigSendingTime): “Required for
> message resent as a result of a ResendRequest. If data is not available set
> to same value as SendingTime (Can be embedded within encrypted data
> section.)”****
>
> ** **
>
> Since the SequenceReset message has PossDupFlag=Y we assume it is sent as
> part of the ResendRequest, thus falls under the above FIXimate rule. The
> FIX engine is behaving as we would expect, but Barclays disagree.****
>
> ** **
>
> Having spoken to a Java developer at my company, he has experienced the
> same issue with QuickFIX/j when carrying out a conformance test with the
> CME in the last month. He provided the following link (
> http://www.quickfixj.org/jira/browse/QFJ-403?page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#issue-tabs)
> which discusses the issue but dates back a couple of years i.e. if it is a
> bug, it’s been known for a while but not fixed, therefore maybe it’s not a
> bug?****
>
> ** **
>
> I believe the equivalent C# code to that discussed in the link is in
> Session.cs, pasted below.****
>
> ** **
>
> ** **
>
> /// FIXME****
>
>         protected bool DoPossDup(Message msg)****
>
>         {****
>
>             *if** (!msg.Header.IsSetField(Fields.Tags.OrigSendingTime))*
>
> *            {*
>
> *                GenerateReject(msg, FixValues.SessionRejectReason.REQUIRED_TAG_MISSING, Fields.Tags.OrigSendingTime);*
>
> *                return false;*
>
> *            }*
>
>             var origSendingTime = msg.Header.GetDateTime(Fields.Tags.OrigSendingTime);****
>
>             var sendingTime = msg.Header.GetDateTime(Fields.Tags.SendingTime);****
>
> ** **
>
>             System.TimeSpan tmSpan = origSendingTime - sendingTime;****
>
>             if (tmSpan.TotalSeconds > 0)****
>
>             {****
>
>                 GenerateReject(msg, FixValues.SessionRejectReason.SENDING_TIME_ACCURACY_PROBLEM);****
>
>                 GenerateLogout();****
>
>                 return false;****
>
>             }****
>
>             return true;****
>
>         }****
>
> ** **
>
> The first line of this function effectively says, if PossDupFlag=Y and
> OrigSendingTime is not present, reject message. We are wondering if the
> SequenceReset message is a special case the does not require field 122, or
> if Barclays are wrong. There is however a big “FIXME” comment above the
> function, but I could not find a bug on the GITHUB page pertaining to this
> function.****
>
> ** **
>
> ** **
>
> Any help would be great.****
>
> ** **
>
> Thanks, Tom****
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
> Below is the command line output from QuickFIX/N. There are two concurrent
> sessions. Relevant fields have been marked in bold.****
>
> ** **
>
> ** **
>
> <event> Received logon****
>
> <event> Received logon****
>
> <event> MsgSeqNum too high, expecting 114 but received 116****
>
> <event> MsgSeqNum too high, expecting 122 but received 124****
>
> ---------------------------------------****
>
> <outgoing>
> 8=FIX.4.4☺9=76☺35=2☺34=231☺49=FETDC_SCDN☺52=20120903-15:58:23.741☺56=****
>
> BARXFUTSTP☺7=114☺16=0☺10=037☺****
>
> ---------------------------------------****
>
> <outgoing>
> 8=FIX.4.4☺9=75☺35=2☺34=114☺49=SUCTST-DC☺52=20120903-15:58:23.741☺56=B****
>
> ARXFUTSTP☺7=122☺16=0☺10=208☺****
>
> <event> *Sent ResendRequest FROM: 114 TO: 0*
>
> ---------------------------------------****
>
> <event> *Sent ResendRequest FROM: 122 TO: 0*****
>
> ---------------------------------------****
>
> <incoming> 8=FIX.4.4☺9=376☺35=8☺49=BARXFUTSTP☺56=FETDC_SCDN☺*34=114*
> ☺52=20120903-1****
>
> 5:58:23☺50=fixuser16☺*43=Y*☺*122=20120903-15:58:12*
> ☺55=RY☺54=1☺14=0☺38=5☺44=0☺151=5☺****
>
>
> 6=0.00000☺59=0☺40=2☺200=201312☺461=FXXXS☺207=CME☺21=3☺11=XTAS:1000511852☺1=FIX16
> ****
>
> ☺37=258878324☺17=2588783242051271347☺39=A☺150=A☺60=20120903-15
> :58:12☺32=0☺31=0☺4****
>
>
> 53=3☺448=fixuser16☺447=D☺452=12☺448=FIXTEST16☺447=D☺452=3☺448=BARCLAYS☺447=D☺452
> ****
>
> =1☺10=081☺****
>
> <incoming> 8=FIX.4.4☺9=382☺35=8☺49=BARXFUTSTP☺56=SUCTST-DC☺*34=122*☺52=
> 20120903-15****
>
> :58:23☺50=fixuser16☺*43=Y*☺*122=20120903-15:58:12*
> ☺55=RY☺54=1☺14=0☺38=5☺44=0☺151=5☺6****
>
>
> =0.00000☺59=0☺40=2☺200=201312☺461=FXXXS☺207=CME☺21=3☺6084=0☺11=XTAS:1000511852☺1
> ****
>
> =FIX16☺37=258878324☺17=2588783242051271347☺39=A☺150=A☺60=20120903-15
> :58:12☺32=0☺****
>
>
> 31=0☺453=3☺448=fixuser16☺447=D☺452=12☺448=FIXTEST16☺447=D☺452=3☺448=BARCLAYS☺447
> ****
>
> =D☺452=1☺10=058☺****
>
> <event> *ResendRequest for messages FROM: 114 TO: 0 has been satisfied.***
> **
>
> <event> *ResendRequest for messages FROM: 122 TO: 0 has been satisfied.***
> **
>
> ---------------------------------------****
>
> ---------------------------------------****
>
> <incoming> 8=FIX.4.4☺9=376☺35=8☺49=BARXFUTSTP☺56=FETDC_SCDN☺*34=115*
> ☺52=20120903-1****
>
> 5:58:23☺50=fixuser16☺*43=Y*☺*122=20120903-15:58:12*
> ☺55=RY☺54=1☺14=0☺38=5☺44=0☺151=5☺****
>
>
> 6=0.00000☺59=0☺40=2☺200=201312☺461=FXXXS☺207=CME☺21=3☺11=XTAS:1000511852☺1=FIX16
> ****
>
> ☺37=258878324☺17=2588783242051271348☺39=0☺150=0☺60=20120903-15
> :58:12☺32=0☺31=0☺4****
>
>
> 53=3☺448=fixuser16☺447=D☺452=12☺448=FIXTEST16☺447=D☺452=3☺448=BARCLAYS☺447=D☺452
> ****
>
> =1☺10=049☺****
>
> ---------------------------------------****
>
> <incoming> 8=FIX.4.4☺9=382☺35=8☺49=BARXFUTSTP☺56=SUCTST-DC☺*34=123*☺52=
> 20120903-15****
>
> :58:23☺50=fixuser16☺*43=Y*☺*122=20120903-15:58:12*
> ☺55=RY☺54=1☺14=0☺38=5☺44=0☺151=5☺6****
>
>
> =0.00000☺59=0☺40=2☺200=201312☺461=FXXXS☺207=CME☺21=3☺6084=0☺11=XTAS:1000511852☺1
> ****
>
>
> =FIX16☺37=258878324☺17=2588783242051271348☺39=0☺150=0☺60=20120903-15:58:12☺32=0☺
> ****
>
>
> 31=0☺453=3☺448=fixuser16☺447=D☺452=12☺448=FIXTEST16☺447=D☺452=3☺448=BARCLAYS☺447
> ****
>
> =D☺452=1☺10=026☺****
>
> ---------------------------------------****
>
> <event> Processing queued message: 124****
>
> <incoming> 8=FIX.4.4☺9=78☺35=4☺49=BARXFUTSTP☺56=SUCTST-DC☺*34=124*☺52=
> 20120903-15:****
>
> 58:23☺*43=Y*☺123=Y☺36=125☺10=151☺****
>
> <event> Processing queued message: 116****
>
> <incoming> 8=FIX.4.4☺9=79☺35=4☺49=BARXFUTSTP☺56=FETDC_SCDN☺*34=116*☺52=
> 20120903-15****
>
> :58:23☺*43=Y*☺123=Y☺36=117☺10=237☺****
>
> <event> *Message 116 Rejected: Required tag missing (Field=122)*
>
> ---------------------------------------****
>
> <event> *Message 124 Rejected: Required tag missing (Field=122)*
>
> ---------------------------------------****
>
> 2012-09-03 16:58:26,976 [11] ERROR Sucden.Barx.Client.vshost
> [Sucden.Barx.Client****
>
> .BarxInitiator] -
> 8=FIX.4.4☺9=115☺35=3☺34=115☺49=SUCTST-DC☺52=20120903-15:58:26.****
>
> 847☺56=BARXFUTSTP☺45=124☺58=Required tag
> missing☺371=122☺372=4☺373=1☺10=080☺****
>
> ** **
>
> <outgoing>
> 8=FIX.4.4☺9=115☺35=3☺34=115☺49=SUCTST-DC☺52=20120903-15:58:26.847☺56=****
>
> BARXFUTSTP☺45=124☺58=Required tag missing☺371=122☺372=4☺373=1☺10=080☺****
>
> 2012-09-03 16:58:26,976 [12] ERROR Sucden.Barx.Client.vshost
> [Sucden.Barx.Client****
>
> .BarxInitiator] -
> 8=FIX.4.4☺9=116☺35=3☺34=232☺49=FETDC_SCDN☺52=20120903-15:58:26****
>
> .846☺56=BARXFUTSTP☺45=116☺58=Required tag
> missing☺371=122☺372=4☺373=1☺10=164☺****
>
> ** **
>
> <outgoing>
> 8=FIX.4.4☺9=116☺35=3☺34=232☺49=FETDC_SCDN☺52=20120903-15:58:26.846☺56****
>
> =BARXFUTSTP☺45=116☺58=Required tag missing☺371=122☺372=4☺373=1☺10=164☺****
>
> <http://www.sucdenfinancial.com/>www.sucdenfinancial.com
>
> Sucden Financial Limited, ****Plantation Place South, 60 Great Tower
> Street**, **London** **EC3R 5AZ****
> Telephone +44 203 207 5000
>
> Registered in ****England**** no. 1095841
> VAT registration no. GB 446 9061 33
>
> Authorised and Regulated by the Financial Services Authority (FSA) and
> entered in the FSA register under no. 114239
>
> This email, including any files transmitted with it, is confidential and
> may be privileged. It may be read, copied and used only by the intended
> recipient. If you are not the intended recipient of this message, please
> notify *postmaster at sucfin.com* immediately and delete it from your
> computer system.
>
>  We believe, but do not warrant, that this email and its attachments are
> virus-free, but you should check.
>
>
>
>  Sucden Financial Limited may monitor traffic data of both business and
> personal emails. By replying to this email, you consent to Sucden Financial
> 's monitoring the content of any emails you send to or receive from Sucden
> Financial . Sucden Financial is not liable for any opinions expressed by
> the sender where this is a non-business email.
>
>
>
>  The contents of this e-mail do not constitute advice and should not be
> regarded as a recommendation to buy, sell or otherwise deal with any
> particular investment.
>
>
>
>  This message has been scanned for viruses by Mimecast<http://www.mimecast.com/>
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>


-- 
Tom Boyce
Developer
*Algo Design Solutions, LLC*
tpboyce at algodesignsolutions.com
(708) 297-8193 Mobile
(312) 241-1731 x 101
www.algodesignsolutions.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20120904/046cfc94/attachment-0002.htm>


More information about the Quickfixn mailing list