Description
https://issues.apache.org/jira/browse/KAFKA-13955 showed that it is possible for the controller to not unfence a broker if the committed offset keeps increasing.
One solution to this problem is to require the broker to only catch up to the last committed offset when they last sent the heartbeat. For example:
- Broker sends a heartbeat with current offset of Y. The last commit offset is X. The controller remember this last commit offset, call it X'
- Broker sends another heartbeat with current offset of Z. Unfence the broker if Z >= X or Z >= X'.
Another solution is to unfence the broker when the applied offset of the broker has reached the offset of its own broker registration record.
This change should also set the default for MetadataMaxIdleIntervalMs back to 500.
Attachments
Issue Links
- links to