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)

Reply via email to