Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initiator not holding messages between resend request and sequence reset from counter party #407

Open
hackmad opened this issue Jun 15, 2020 · 0 comments

Comments

@hackmad
Copy link

hackmad commented Jun 15, 2020

We use a 3rd party vendor for order entry and market data. We use Golang 1.14.2 (the code uses master branch of quickfixgo). The counter party always sends us a full snapshot of the order book after a logon using 35=X message. Any subsequent incremental changes come as 35=X as well. For the most part this works fine for us to build the order book.

Just to stage the scenario, we have 2 open orders, a bid and an offer. I have been testing network disconnect/reconnect by simply turning of the WiFi connection right after the full snapshot is received. Once I see the engine attempting to reconnect, I reconnect the WiFi.

This is a stripped down version of our initiator: main.go

We noticed that after reconnecting, there is an exchange between the application and counter-party where we get sent the logon message and the full snapshot but the sequence numbers don't match. So a Resend Request is sent. The counter-party expects the application to hold on to the messages as it won't send the snapshot again and sends a Sequence Reset-Reset. We can see that the engine receives the incoming messages but they never get forwarded on to the FromApp handler. I have linked the logs here.

Another situation arises where we do get the full snapshot but for some reason another disconnect is detected (without any intervention) which follows the same pattern as above causing us to lose the snapshot. These logs show this behaviour.

@hackmad hackmad changed the title SocketInitiator not holding messages between resend request and sequence reset from counter party Initiator not holding messages between resend request and sequence reset from counter party Jun 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant