Details
-
Bug
-
Status: Closed
-
Blocker
-
Resolution: Fixed
-
0.8.0
-
None
Description
On a new broker startup, the controller is supposed to send the entire list of partitions that the new broker is supposed to host in one leader and isr request. In this request, it specifies if the new broker is the leader or follower for each of those partitions. For most of the partitions, the new broker will be a follower. However, for some partitions that don't have any other broker alive, the new broker will be the leader. The bug is that the controller first elects the leaders for offline partitons to see if the new broker is the leader for any of those and sends only those partitions for which leader was elected in the first leader and isr request. Right after that, it does send a leader and isr request with all partitions, but that breaks the guarantee that the very first leader and isr request has all partitions. As a result of this bug, the high watermark checkpointing logic behaves incorrectly.