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)

Reply via email to