suzhiking opened a new pull request, #23146: URL: https://github.com/apache/kafka/pull/23146
Kafka 4.4 bumps `StreamsGroupHeartbeat` and `StreamsGroupDescribe` from v0 to v1 (KIP-1331, KIP-1357, KAFKA-20744). The new fields only flow when both sides are 4.4+, so this adds ducktape coverage for mixed-version deployments in both directions, using 4.2.1/4.3.1 as the older side (4.2 is the earliest release with streams group support). The tests drive the `StreamsUpgradeTest` harness with `group.protocol=streams`. New `streams_protocol_cross_version_test.py` (7 tests, 15 matrix cases): - new client / old broker: reaches RUNNING, logs `acceptableRecoveryLag=not provided (older broker)` exactly when the response was v0, no `UnsupportedVersionException` - old client / new broker: reaches RUNNING, the ignorable v1 lag field is dropped cleanly at v0 - `MISSING_CLIENT_TAGS` is only sent to v1 clients, and not sent when the required tag is configured - `kafka-streams-groups.sh --describe` works cross-version in both directions; `--describe --topology` against an old broker fails diagnosably rather than hanging (graceful degradation is a possible follow-up; the assertion is deliberately loose so it survives one) - a plugin-configured new broker reports no stored topology description for an old client Extended `streams_topology_description_plugin_test.py` (+1 test): a new client is never solicited for a topology push by an old broker, since `TopologyDescriptionRequired` only exists in response v1. `setup_kafka` gained an optional `broker_version` parameter; existing tests unchanged. The warm-up scenario from the ticket (old clients must never get warm-up tasks) is intentionally left out: `AssignmentRefiner` is still a stub, so the test would pass vacuously until KAFKA-20665 lands. ### Testing Asserted log lines and CLI output verified against the shipped 4.2.1/4.3.1/trunk sources. Ducktape run results to be posted on this PR. -- 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]
