José Armando García Sancio created KAFKA-17333: --------------------------------------------------
Summary: KRaft notifies the controller of leadership too early Key: KAFKA-17333 URL: https://issues.apache.org/jira/browse/KAFKA-17333 Project: Kafka Issue Type: Sub-task Reporter: José Armando García Sancio {code:java} [2024-08-13 16:17:17,110] DEBUG [RaftManager id=1] Notifying listener org.apache.kafka.controller.QuorumController$QuorumMetaLogListener@332577314 of leader change LeaderAndEpoch(leaderId=OptionalInt[1], epoch=9) (org.apache.kafka.raft.KafkaRaftClient) [2024-08-13 16:17:17,113] TRACE [RaftManager id=1] Received inbound message InboundResponse(correlationId=0, data=EndQuorumEpochResponseData(errorCode=0, topics=[TopicData(topicName='__cluster_metadata', partitions=[PartitionData(partitionIndex=0, errorCode=74, leaderId=2, leaderEpoch=10)])], nodeEndpoints=[NodeEndpoint(nodeId=2, host='localhost', port=9094)]), source=localhost:9094 (id: 2 rack: null)) (org.apache.kafka.raft.KafkaRaftClient) [2024-08-13 16:17:17,114] INFO [controller-1-ThrottledChannelReaper-Fetch]: Starting (kafka.server.ClientQuotaManager$ThrottledChannelReaper) [2024-08-13 16:17:17,116] TRACE Writing tmp quorum state /tmp/kraft-controller1-logs/__cluster_metadata-0/quorum-state.tmp (org.apache.kafka.raft.FileQuorumStateStore) [2024-08-13 16:17:17,117] INFO [controller-1-ThrottledChannelReaper-Produce]: Starting (kafka.server.ClientQuotaManager$ThrottledChannelReaper) [2024-08-13 16:17:17,117] ERROR Encountered fatal fault: exception while renouncing leadership (org.apache.kafka.server.fault.ProcessTerminatingFaultHandler) java.lang.IllegalStateException: Attempt to resign by a non-voter at org.apache.kafka.raft.KafkaRaftClient.resign(KafkaRaftClient.java:3344) at org.apache.kafka.controller.QuorumController.renounce(QuorumController.java:1263) at org.apache.kafka.controller.QuorumController.handleEventException(QuorumController.java:544) at org.apache.kafka.controller.QuorumController.access$800(QuorumController.java:179) at org.apache.kafka.controller.QuorumController$ControllerWriteEvent.complete(QuorumController.java:874) at org.apache.kafka.controller.QuorumController$ControllerWriteEvent.handleException(QuorumController.java:864) at org.apache.kafka.queue.KafkaEventQueue$EventContext.completeWithException(KafkaEventQueue.java:153) at org.apache.kafka.queue.KafkaEventQueue$EventContext.run(KafkaEventQueue.java:142) at org.apache.kafka.queue.KafkaEventQueue$EventHandler.handleEvents(KafkaEventQueue.java:215) at org.apache.kafka.queue.KafkaEventQueue$EventHandler.run(KafkaEventQueue.java:186) at java.base/java.lang.Thread.run(Thread.java:840) [2024-08-13 16:17:17,118] INFO [controller-1-ThrottledChannelReaper-Request]: Starting (kafka.server.ClientQuotaManager$ThrottledChannelReaper) [2024-08-13 16:17:17,121] INFO [controller-1-ThrottledChannelReaper-ControllerMutation]: Starting (kafka.server.ClientQuotaManager$ThrottledChannelReaper) {code} While restarting a controller that was leader after a crash the controller gets notify of leadership. This is not correct. The controller should only get notified once it has reached the high-watermark. -- This message was sent by Atlassian Jira (v8.20.10#820010)