-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix duplicate batches in retry queue (#5520)
On error in the Logstash output sender, failed batches might get enqueued two times. This can lead to multiple resends and ACKs for the same events. In filebeat/winlogbeat, waiting for ACK from output, at most one ACK is required. With potentially multiple ACKs (especially with multiple consecutive IO errors) a deadlock in the outputs ACK handler can occur. This PR ensures batches can not be returned to the retry queue via 2 code paths (remove race between competing workers): - async output worker does not return events back into retry queue - async clients are required to always report retrieable errors via callbacks - add some more detailed debug logs to the LS output, that can help in identifiying ACKed batches still being retried
- Loading branch information
Showing
4 changed files
with
39 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters