Dongnuo Lyu created KAFKA-17219:
-----------------------------------
Summary: Adjust system test framework for new protocol consumer
Key: KAFKA-17219
URL: https://issues.apache.org/jira/browse/KAFKA-17219
Project: Kafka
Issue Type: Task
Components: clients, consumer, system tests
Reporter: Dongnuo Lyu
The current test framework doesn't work well with the existing tests using the
new consumer protocol. There are two main issues
We sometimes assume there is no rebalance triggered, for instance in
{{consumer_test.py::test_consumer_failure}}
# verify that there were no rebalances on failover
assert num_rebalances == consumer.num_rebalances(), "Broker failure should not
cause a rebalance"
The current frame work calculates {{num_rebalances}} by increment by one every
time a new assignment is received, so if a reconciliation happened during the
failover, {{num_rebalances}} will also be incremented. For new protocol we need
a new way to update {{{}num_rebalances{}}}.
For the new protocol, we need a way to make sure all members have joined {*}and
stablized{*}. Currently we only make sure all members have joined (the event
handlers are all in Joined state), where some partitions haven't been assigned
and more time is needed for reconciliation. The issue can cause failure in
assertions like timeout waiting for consumption and
{{}}
partition_owner = consumer.owner(partition)
assert partition_owner is not None
For a short term solution, we can make the tests pass by bypassing with adding
{{time.sleep}} or skip checking {{{}num_rebalance{}}}. To truly fix them, we
should adjust
{{tools/src/main/java/org/apache/kafka/tools/VerifiableConsumer.java}} to work
well with the new protocol.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)