QuickFIX/J

Resend Request Synchronization Patch

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Critical Critical
  • Resolution: Duplicate
  • Affects Version/s: 1.4.0
  • Fix Version/s: 1.5.0
  • Component/s: Engine
  • Labels:
    None
  • Environment:
    All

Description


QuickFIX/J has an issue with the file store and message sequence numbers when simultaneously answering a ResendRequest on a connection, and processing brand new messages routed to that connection which are also to be sent to the client. The file pointers were not handled correctly for reading stored messages which are to be sent as PossDups, and for new messages to be written to the outgoing file. This caused outgoing message store file corruption, and repeated / out of sequence seqnums being sent.

Fixed: synchronization QFJ patch, where the thread is blocked from sending new messages (i.e. buffering) until a ResendRequest is fully answered.

    private void nextResendRequest(Message resendRequest) throws IOException, RejectLogon,
     FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType,
            InvalidMessage {
     if (!verify(resendRequest, false, false)) {
               return;
            }

// ******* ADDED *******
state.lockSenderMsgSeqNum();
     try {

int beginSeqNo = resendRequest.getInt(BeginSeqNo.FIELD);
int endSeqNo = resendRequest.getInt(EndSeqNo.FIELD);

getLog().onEvent(
"Received ResendRequest FROM: " + beginSeqNo + " TO: " + formatEndSeqNum(endSeqNo));
....

// ******* ADDED *******
     } finally{
     state.unlockSenderMsgSeqNum();
     }
    }

(Internal reference: IC_57785)

Issue Links

Activity

Hide
Eric Deshayes added a comment - 12/Apr/11 3:41 PM

This issue has already been fixed in 1.5.0.

Show
Eric Deshayes added a comment - 12/Apr/11 3:41 PM This issue has already been fixed in 1.5.0.
Hide
Eric Deshayes added a comment - 12/Apr/11 3:42 PM

Duplicate of QFJ-429

Show
Eric Deshayes added a comment - 12/Apr/11 3:42 PM Duplicate of QFJ-429

People

  • Assignee:
    Unassigned
    Reporter:
    SSE
Vote (1)
Watch (1)

Dates

  • Created:
    28/Jun/10 2:47 PM
    Updated:
    12/Apr/11 3:42 PM
    Resolved:
    12/Apr/11 3:42 PM