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)