lucasbru opened a new pull request, #23413: URL: https://github.com/apache/kafka/pull/23413
The heartbeat- and describe-based topology push protocol added by KIP-1331 relies on StreamsGroupHeartbeat and StreamsGroupDescribe negotiating down to earlier versions when talking to a broker or client that predates the feature, and on the admin client refusing to send a topology description request a broker cannot understand. This was previously only checked by unit tests exercising the version-gating logic directly; nothing ran an actual pre-4.4 Kafka broker or Streams client against the feature to prove the real wire negotiation degrades gracefully in both directions. This adds three system tests covering the missing directions: a Streams client built from this branch (topology push enabled by default) talking to a genuine 4.3.1 broker, a genuine 4.3.1 Streams client talking to a broker on this branch with the plugin configured, and the admin client/CLI on this branch requesting a topology description from a 4.3.1 broker, which must fail client-side with UnsupportedVersionException rather than silently describing the group without it. ## Test plan All three tests were run against real ducker containers (docker-based ducktape harness) to confirm they exercise the intended code paths rather than passing vacuously: - Confirmed via broker/client logs that the pinned old-version processes actually ran Kafka 4.3.1, not the dev-branch build. - Confirmed the admin-client test's failure text matches `UnsupportedVersionException: Attempted to write a non-default includeTopologyDescription at version 0` with exit code 1. - Re-ran the full `streams_topology_description_plugin_test.py` suite (9 tests) plus the new smoke test together; all pass. -- 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]
