tongwai-wong-appier commented on issue #16282:
URL: https://github.com/apache/iceberg/issues/16282#issuecomment-5082844093

   Assume a zombie coordinator exists — the split-brain case your PR is about, 
where a previous
   leader's `close()` never reached `stopCoordinator()`, so two coordinators 
are members of
   `<group>-coord` and the healthy one holds the control-topic partition.
   
   The rewind doesn't need a `seek()` — it needs a *different* member to leave 
the group.
   
   - Zombie shuts down: `CommitterImpl.close()` → `stopCoordinator()` → 
`CoordinatorThread.terminate()`
     → `Channel.stop()` → `consumer.close()` → **LeaveGroup**
   - Membership change → `<group>-coord` rebalances → the *surviving* 
coordinator has to rejoin, even
     though it's healthy and keeps the same partition
   - No `partition.assignment.strategy` set → client default `[RangeAssignor, 
CooperativeStickyAssignor]`
     → protocol comes from the first entry = **eager** → all partitions 
revoked, fetch positions
     discarded → `updateFetchPositions()` refetches the committed offset. 
That's the rewind, inside the
     consumer — nothing to grep for.
   - Nothing is constructed on that path and no `ConsumerRebalanceListener` is 
registered, so
     `commitBuffer` / `currentCommitId` / `controlTopicOffsets` are untouched. 
**That's t2**: buffer 0–7,
     `{0:8}`, position 0.
   - Replayed records carry the current `commitId` (the group offset only 
advances on a successful
     `doCommit()`), so `isCommitReady()` fires mid-drain at 8+2 = 10 — the 
commit runs while the map is
     `{0:2}`.
   
   Your co-reset invariant covers the Coordinator being constructed, not the 
one already running.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to