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]
