Details
Description
We have the following code in FinalizedFeatureChangeListener.scala which will exit regardless of the type of exception that is thrown when trying to process feature changes:
case e: Exception => {
error("Failed to process feature ZK node change event. The broker will eventually exit.", e)
throw new FatalExitError(1)
The issue here is that this does not distinguish between exceptions caused by an inability to process a feature change and an exception caused by a ZooKeeper session timeout. We want to shut the broker down for the former case, but we do NOT want to shut the broker down in the latter case; the ZooKeeper session will eventually be reestablished, and we can continue processing at that time.
Attachments
Issue Links
- duplicates
-
KAFKA-14890 Kafka initiates shutdown due to connectivity problem with Zookeeper and FatalExitError from ChangeNotificationProcessorThread
- Resolved
- links to