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)