lucasbru opened a new pull request, #22616:
URL: https://github.com/apache/kafka/pull/22616

   Follow-up cleanups for the streams group topology description plugin 
(KIP-1331), addressing review feedback from the 2/3 and 3/3 PRs (#22552, 
#22554) that was deferred at merge time. It is based on trunk after all three 
parts landed.
   
   The DeleteGroups pre-delete path is hardened. A failure of the streams 
topology pre-delete read now goes through handleOperationException, so it 
reports the same translated, retriable error codes as the rest of the delete 
pipeline rather than a raw code, and the plugin's own failure message is no 
longer forwarded to the client. The stored and failed topology epochs are only 
ever advanced, never regressed, which closes a window where a slow push 
committing after the group's epoch advanced (or after a concurrent higher-epoch 
push) could move them backwards.
   
   The push RPC handler is simplified. The back-off disposition is now acted on 
at the point where it is known instead of being threaded through the future 
chain as a value object, which removes the SetTopologyOutcome, BackoffAction, 
applySetTopologyBackoff and outcomeForPostPluginWrite machinery and leaves a 
single terminal error mapping; pre-plugin failures naturally never touch the 
back-off. Suppressing solicitation for a departing member moves out of 
GroupMetadataManager, which previously built a sentinel result, and into the 
service-layer gate that already owns the solicitation policy, so the manager 
builds leave and fence results with the group's real epochs like any other 
heartbeat.
   
   The remaining changes are smaller cleanups: the per-group back-off uses 
ConcurrentHashMap.compute consistently rather than a hand-rolled 
compare-and-swap loop, the pre-delete group filter uses a non-throwing lookup 
instead of catching an exception per non-streams group, and the boolean-flag 
epoch-write method is split into named methods.
   
   One known limitation is intentionally left for a separate follow-up: the 
broker-local back-off map is only evicted on DeleteGroups, so groups removed by 
session expiry, partition unload, or tombstone-via-replay retain their entry 
until the group id is reused.
   


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