cmccabe commented on code in PR #12596: URL: https://github.com/apache/kafka/pull/12596#discussion_r965316100
########## core/src/main/scala/kafka/server/metadata/BrokerMetadataListener.scala: ########## @@ -41,8 +43,19 @@ class BrokerMetadataListener( val maxBytesBetweenSnapshots: Long, val snapshotter: Option[MetadataSnapshotter], brokerMetrics: BrokerServerMetrics, - metadataLoadingFaultHandler: FaultHandler + _metadataLoadingFaultHandler: FaultHandler ) extends RaftClient.Listener[ApiMessageAndVersion] with KafkaMetricsGroup { + + private val metadataFaultOccurred = new AtomicBoolean(false) + private val metadataLoadingFaultHandler: FaultHandler = new FaultHandler() { + override def handleFault(failureMessage: String, cause: Throwable): RuntimeException = { + if (metadataFaultOccurred.compareAndSet(false, true)) { + error("Disabling metadata snapshots until this broker is restarted.") + } + _metadataLoadingFaultHandler.handleFault(failureMessage, cause) + } Review Comment: Please read https://cwiki.apache.org/confluence/display/KAFKA/KIP-859%3A+Add+Metadata+Log+Processing+Error+Related+Metrics for a description of how we're handling metadata errors. Keep in mind that we're not trying to revisit that KIP here, just fixing a corner case (not creating snapshots after errors) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org