davide-armand opened a new pull request, #23196:
URL: https://github.com/apache/kafka/pull/23196

   KIP-1312 can unregister a controller only after `metadata.version` reaches 
4.4. Old, stopped controller registrations ("ghost controllers") can advertise 
only older metadata versions, so feature validation rejects the 
`metadata.version` upgrade needed to remove them (deadlock situation).
   
   Bridge that deadlock with `decommission-controller`. Before 4.4-IV2, it 
marks a stopped controller that is no longer a quorum voter with 
`__decommissioned_controller`. Patched controllers ignore marked registrations 
during feature validation, allowing `metadata.version` to reach 4.4. 
Afterwards, running the same operation writes an `UnregisterControllerRecord` 
and deletes the registration (KIP-1312 behavior).
   
   This retains the useful marker and validation filter from the pre-KIP-1312 
implementation (PR #70), but changes its integration with Kafka. PR #70 
introduced a fork-local `DecommissionController` protocol and always retained 
the marked registration, while also widening its advertised feature ranges. 
This port reuses the upstream KIP-1312 UnregisterController API, preserves the 
stored feature ranges, and physically removes the registration once 4.4 is 
finalized.
   
   Co-authored-by: Pi Agent (gpt-5.6-terra)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to