Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.9.0.0
Description
The following sequence can happen.
1. Broker A is the controller and is in the middle of processing a broker change event. As part of this process, let's say it's about to shrink the isr of a partition.
2. Then broker A's session expires and broker B takes over as the new controller. Broker B sends the initial leaderAndIsr request to all brokers.
3. Broker A continues by shrinking the isr of the partition in ZK and sends the new leaderAndIsr request to the broker (say C) that leads the partition. Broker C will reject this leaderAndIsr since the request comes from a controller with an older epoch. Now we could be in a situation that Broker C thinks the isr has all replicas, but the isr stored in ZK is different.
Attachments
Issue Links
- is part of
-
KAFKA-3210 Using asynchronous calls through the raw ZK API in ZkUtils
- Resolved
- is related to
-
KAFKA-2729 Cached zkVersion not equal to that in zookeeper, broker not recovering.
- Resolved
-
KAFKA-5027 Kafka Controller Redesign
- Open