Barry Oglesby created GEODE-5706: ------------------------------------ Summary: The Ack Reader thread can cause the Event Processor thread to clear the batchIdToEventsMap when it shouldn't Key: GEODE-5706 URL: https://issues.apache.org/jira/browse/GEODE-5706 Project: Geode Issue Type: Bug Components: wan Reporter: Barry Oglesby
The sequence of events that causes this issue are: - The local sender's Ack Reader and Event Processor threads are connected to one of the receivers - The receiver crashes - the Ack Reader thread detects that and closes the connection - the Event Processor thread fails to send a batch and resets the batchId (which sets the resetLastPeekedEvents to true) - the Event Processor thread clears the batchIdToEventsMap (containing batches already sent but not acked) since resetLastPeekedEvents is true - the Event Processor thread establishes a connection to another receiver - the Event Processor thread continues sending batches to the new receiver (and adding them to the batchIdToEventsMap) - the Ack Reader thread exception handling causes resetLastPeekedEvents to be set to true - the Event Processor thread clears the batchIdToEventsMap since resetLastPeekedEvents is true - batches are lost When the Ack Reader thread receives acks for these batches, the batchIdToEventsMap no longer contains them so: - the afterAcknowledgement callback is not invoked - the events are not removed properly from the queue -- This message was sent by Atlassian JIRA (v7.6.3#76005)