sjhajharia opened a new pull request, #22851: URL: https://github.com/apache/kafka/pull/22851
### Summary Extends the share-group DLQ system test suite (`ShareConsumerDLQTest`, added in the prior PR covering single-partition scenarios) to cover two more topologies from the KAFKA-20772 test plan: - Multi-partition (single topic, 3 partitions): `test_multi_partition_dlq_reject` (parametrized over `num_dlq_partitions=[3, 1]` to cover both 1:1 and modulus-collapsing DLQ routing), `test_multi_partition_dlq_release`, `test_multi_partition_dlq_mixed`. - Multi-topic (two source topics sharing one share group and one DLQ topic): `test_multi_topic_dlq_reject`, `test_multi_topic_dlq_release`. A single `VerifiableShareConsumer` member subscribes to both topics at once via a comma-separated `--topic` list (new capability added here). DLQ records are asserted to carry the correct `__dlq.errors.topic` header and route to `source_partition % num_dlq_partitions` per topic. ### Changes - `VerifiableShareConsumer.java`: `--topic` now accepts a comma-separated list, letting one process subscribe to multiple topics. - `VerifiableConsumer.java`: exposes record headers (`RecordData.headers()`) so the DLQ-reading verifier consumer can assert on `__dlq.errors.*` headers. - `share_consumer_dlq_test.py`: 5 new test methods as above, plus shared helpers for grouping DLQ records by source topic and computing expected mixed-ack-pattern outcomes. ### Results | Test | Params | Status | Time | |---|---|---|---| | test_single_partition_dlq_reject | COMBINED_KRAFT | PASS | 46.3s | | test_single_partition_dlq_reject | ISOLATED_KRAFT | PASS | 1m 5.4s | | test_single_partition_dlq_release | COMBINED_KRAFT | PASS | 48.0s | | test_single_partition_dlq_release | ISOLATED_KRAFT | PASS | 1m 8.3s | | test_single_partition_dlq_mixed | COMBINED_KRAFT | PASS | 48.3s | | test_single_partition_dlq_mixed | ISOLATED_KRAFT | PASS | 1m 9.4s | | test_multi_partition_dlq_release | COMBINED_KRAFT | PASS | 48.4s | | test_multi_partition_dlq_release | ISOLATED_KRAFT | PASS | 1m 6.5s | | test_multi_partition_dlq_reject | COMBINED_KRAFT, num_dlq_partitions=1 | PASS | 44.8s | | test_multi_partition_dlq_reject | COMBINED_KRAFT, num_dlq_partitions=3 | PASS | 45.4s | | test_multi_partition_dlq_reject | ISOLATED_KRAFT, num_dlq_partitions=1 | PASS | 1m 6.4s | | test_multi_partition_dlq_reject | ISOLATED_KRAFT, num_dlq_partitions=3 | PASS | 1m 5.6s | | test_multi_partition_dlq_mixed | COMBINED_KRAFT | PASS | 51.2s | | test_multi_partition_dlq_mixed | ISOLATED_KRAFT | PASS | 1m 9.6s | | test_multi_topic_dlq_reject | COMBINED_KRAFT | PASS | 48.8s | | test_multi_topic_dlq_reject | ISOLATED_KRAFT | PASS | 1m 5.6s | | test_multi_topic_dlq_release | COMBINED_KRAFT | PASS | 48.9s | | test_multi_topic_dlq_release | ISOLATED_KRAFT | PASS | 1m 8.3s | -- 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]
