Hi Alyssa,

Thanks for the reply.

RE AH1: Stale controller registrations can be an issue even without dynamic
reconfiguration because observer controllers persist their registration in
the metadata log and are thus considered as "part of the kafka cluster" for
the feature upgrade checks. After an observer controller has been
decommissioned by an operator, its stale registration in a static quorum
configuration also prevents feature upgrades if that registration does not
support certain finalized feature levels. The situation described here can
also happen with a dynamic quorum cluster, regardless if RemoveVoter is
run. That being said, yes, running RemoveVoter after decommissioning the
node, without removing the registration, is one way to cause a stale
controller registration, but the real thing causing stale registration is
the operator decommissioning a given controller node. The decision to add
an `--unregister` flag to `kafka-metadata-quorum remove-controller` was
mainly for a good UX, so that the user can run 1 CLI command completely
remove a controller from both the KRaft voter set and the kafka cluster.

The RemoveVoter RPC itself does not know whether the controller process
associated with the removed ReplicaKey has actually been decommissioned.
The operator is really the only one who "knows" this. For example,
auto-joining controllers remove their old incarnation's ReplicaKey from the
voter set before adding themselves back to the voter set.

Best,
Kevin Wu



On Fri, Apr 3, 2026 at 2:18 PM Alyssa Huang via dev <[email protected]>
wrote:

> Thanks for the KIP Kevin!
>
> AH1
>
> > This means a stale controller registration from a controller that no
> > longer exists can block feature upgrades.
>
>
> And dynamic reconfiguration (specifically RemoveVoter) can cause stale
> controller registrations? Meaning anyone who has used RemoveVoter to
> permanently downsize their controller quorum would eventually need to
> unregister the controller to unblock future feature upgrades?
>
> Best,
> Alyssa
>
> On Fri, Apr 3, 2026 at 11:30 AM Kevin Wu <[email protected]> wrote:
>
> > Hi all,
> >
> > I would like to start a discussion on KIP-1312: Support unregistering
> > controllers. Below is the KIP link.
> >
> >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1312%3A+Support+unregistering+controllers
> >
> > Thanks,
> > Kevin Wu
> >
>

Reply via email to