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)

Reply via email to