{{ message }}
Make RabbitMQ direct selects tolerate slow consumption#108364
Merged
Conversation
Direct SELECT from `RabbitMQ` consumes rows, so tests must accumulate returned batches. Reset the polling deadline whenever accumulated rows increase to avoid failing while sanitizer/db-disk runs are still making progress. CI report: https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=108014&sha=ca91c12b238e033b5dc8c7453295e4e7017ac997 Related PR: #108014
Contributor
Contributor
There was a problem hiding this comment.
Pull request overview
Improves resiliency of RabbitMQ integration tests that use direct SELECT (which consumes messages) by switching from fixed-deadline polling loops to a progress-based polling helper that extends the deadline whenever more rows are accumulated.
Changes:
- Added
poll_direct_select_resulthelper to poll direct-select queries while extending the deadline on consumption progress. - Refactored multiple direct-select tests in
test.pyto use a sharedcheck_direct_select_result_pollingwrapper. - Updated
test_shutdown.pyto use the new polling helper for the virtual column direct-select assertion.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
tests/integration/test_storage_rabbitmq/test.py |
Replaces duplicated direct-select polling loops with a shared polling wrapper built on the new helper. |
tests/integration/test_storage_rabbitmq/test_shutdown.py |
Uses the new helper to wait for direct-select consumption to reach the expected row count. |
tests/integration/test_storage_rabbitmq/__init__.py |
Introduces poll_direct_select_result helper implementing progress-based polling for direct selects. |
Track progress in `poll_direct_select_result` from each newly fetched batch instead of recounting rows from the accumulated result on every poll iteration.
Contributor
LLVM Coverage ReportChanged lines: No C/C++ source files changed — skipping uncovered code analysis. Newly covered by added/modified tests: 313 line(s), 49 function(s) across 104 file(s) · Details Top files
|
kssenii
reviewed
Jun 24, 2026
kssenii
approved these changes
Jun 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Make direct
RabbitMQselect tests resilient to slow sanitizer/db-disk runs by resetting the polling deadline whenever accumulated rows increase. Direct selects consume rows fromRabbitMQ, so the tests still accumulate returned batches rather than replacing the result.CI report:
https://s3.amazonaws.com/clickhouse-test-reports/json.html?PR=108014&sha=ca91c12b238e033b5dc8c7453295e4e7017ac997&name_0=PR&name_1=Integration%20tests%20%28amd_asan_ubsan%2C%20db%20disk%2C%20old%20analyzer%2C%206%2F6%29
Related: #108014
No existing open tracking issue was found for
test_rabbitmq_csv_with_delimiteror theRabbitMQtimeout.Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):
Not required.
Documentation entry:
Version info
26.7.1.33