[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. |