forked from apache/kafka
-
Notifications
You must be signed in to change notification settings - Fork 56
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[LI-HOTFIX] Catch InternalError in Fetcher Thread (#476)
TICKET = LIKAFKA-54326 LI_DESCRIPTION = Change FetcherEventThread to catch InternalError in addition to Exceptions to prevent the thread terminating when InternalError is thrown. The thread can continue processing other events. FetcherEventThread is responsible to complete Futures associated with events including RemovePartitions. In previous GCNs that were caused by disk corruptions, InternalError (unsafe memory access) was thrown due to accessing memory-mapped log files when processing TruncateAndFetch events. Without catching this InternalError, the fetcher thread is terminated, which causes handleLogDirFailure being stuck waiting future.get() for futures associated with unprocessed RemovePartitions events. We catch InternalError here to prevent the thread terminating right away and let handleLogDirFailure handle broker shutdown if necessary. There have been no issues other than disk failure caused InternalError so far. EXIT_CRITERIA = N/A
- Loading branch information
Showing
2 changed files
with
116 additions
and
4 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