[QFJ-669] Initiator interprets logout response as logout request. Created: 02/Mar/12 Updated: 24/Jan/13 |
|
Status: | Open |
Project: | QuickFIX/J |
Component/s: | None |
Affects Version/s: | 1.5.2, 1.5.3 |
Fix Version/s: | Future Releases |
Type: | Bug | Priority: | Default |
Reporter: | Bogdan Dornean | Assignee: | Unassigned |
Resolution: | Unresolved | Votes: | 0 |
Labels: | None |
Description |
Steps: INFO: Logging out all sessions <20120302-14:43:55, FIX.4.2:INITIATOR->ACCEPTOR, error> (Error Reading/Writing in MessageStore <20120302-14:43:55, FIX.4.2:INITIATOR->ACCEPTOR, event> (Sent logout response) |
Comments |
Comment by Krzysztof Szalast [ 14/Sep/12 ] |
I also have this error. After second unnecessary LogOut, when I am sending LogOn, in field 34 is bad value (to high). Scenario: Very sorry for my English |
Comment by Krzysztof Szalast [ 14/Sep/12 ] |
I've resolved problem by add "synchronized" modifier to methods: |
Comment by Jörg Thönnes [ 24/Jan/13 ] |
I could reproduce this issue. It seems to happen if there is a very low latency in the network connection between client and server (e.g. on the same host). Two things happen very quickly:
QFJ tries to answer the Logout it considers as request and fails:
But this message is kept in the message store and leads to a ResendRequest at the next logon. IHMO, syncing on next() is too brute-force. On the other hand, correcting the already complicated state handling is tricky. |
Comment by Jörg Thönnes [ 24/Jan/13 ] |
Lowering priority since this is a race condition in a very specific situation and does not affect general functionality. |