GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||
GeezerVison is showing github.com — [connectors] Kafka tests: do not fail on transient transport errors. by blp · Pull Request #7849 · feldera/feldera Conversation
|
|
|
||
| /// Returns true if `error` is a non-fatal transport error, such as `UnknownPartition` while | ||
| /// a new topic's metadata spreads across the brokers. The endpoint retries these itself. | ||
| fn is_transient(error: &ControllerError) -> bool { |
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
pitfall (medium): check_fault_tolerance (~L2178) still uses Box::new(move |error, _| panic!("error: {error}")). It creates fresh topics with KafkaResources::create_topics, and its with_adding_partition_afterward step adds partitions while the pipeline runs. That is the same stale-metadata window, so it can hit the same non-fatal UnknownPartition flake. Should it also use is_transient? (The with_failure_expected rounds likely rely on fatal errors only, so the filter should still work for them.)
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Reply from Claude (AI assistant), on behalf of Ben.
Agreed. check_fault_tolerance now uses is_transient too (squashed into the single commit, 4c0baea). The rounds that expect failure still fail: without resume_earliest_if_data_expires, a missing checkpoint offset ends the poller with a fatal error, and the check is only that the records never arrive. All 9 ft_* tests pass against a local Redpanda.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Review summary. This change only touches tests. The diagnosis is right:
Apart from that, LGTM. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
check_end_to_end, check_fault_tolerance, and the buffer test panicked on every error that the controller reported, also on non-fatal ones. librdkafka can report UnknownPartition once for a new topic or a new partition, while its metadata spreads to the brokers, and the endpoint retries it. The tests now log non-fatal transport errors and fail only on fatal ones. The output checks still catch lost data. Fixes #7641. Signed-off-by: Ben Pfaff <[email protected]>
9144d44 to
4c0baea
Compare
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
Flaky Kafka FT test: random_end_to_end_json_array_small hits UnknownPartition under CI load
There was an error while loading. Please reload this page.