Skip to content

Fix NATS integration tests#69772

Merged
antaljanosbenjamin merged 115 commits intoClickHouse:masterfrom
dmitry-sles-novikov:fix_nats_tests
Jan 31, 2025
Merged

Fix NATS integration tests#69772
antaljanosbenjamin merged 115 commits intoClickHouse:masterfrom
dmitry-sles-novikov:fix_nats_tests

Conversation

@dmitry-sles-novikov
Copy link
Copy Markdown
Contributor

@dmitry-sles-novikov dmitry-sles-novikov commented Sep 19, 2024

Ref: #53241

Changelog category:

  • Build/Testing/Packaging Improvement

Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):

  • restore deleted NATS integration tests and fix errors.
  • fixed some race conditions in NATS engine
  • fixed data loss when streaming data to NATS in case of connection loss
  • fixed freeze of receiving the last chunk of data when streaming from NATS ended
  • nats_max_reconnect is deprecated and has no effect, reconnect is performed permanently with nats_reconnect_wait timeout

CI Settings (Only check the boxes if you know what you are doing):

  • Allow: All Required Checks
  • Allow: Stateless tests
  • Allow: Stateful tests
  • Allow: Integration Tests
  • Allow: Performance tests
  • Allow: All Builds
  • Allow: batch 1, 2 for multi-batch jobs
  • Allow: batch 3, 4, 5, 6 for multi-batch jobs

  • Exclude: Style check
  • Exclude: Fast test
  • Exclude: All with ASAN
  • Exclude: All with TSAN, MSAN, UBSAN, Coverage
  • Exclude: All with aarch64, release, debug

  • Run only fuzzers related jobs (libFuzzer fuzzers, AST fuzzers, etc.)
  • Exclude: AST fuzzers

  • Do not test
  • Woolen Wolfdog
  • Upload binaries for special builds
  • Disable merge-commit
  • Disable CI cache

Signed-off-by: Dmitry Novikov <NovikovDmitryDSM@mail.ru>
Signed-off-by: Dmitry Novikov <NovikovDmitryDSM@mail.ru>
Signed-off-by: Dmitry Novikov <NovikovDmitryDSM@mail.ru>
Signed-off-by: Dmitry Novikov <NovikovDmitryDSM@mail.ru>
@dmitry-sles-novikov dmitry-sles-novikov changed the title Fix nats integration tests Fix NATS integration tests Sep 19, 2024
@thevar1able thevar1able added the can be tested Allows running workflows for external contributors label Sep 19, 2024
@dmitry-sles-novikov
Copy link
Copy Markdown
Contributor Author

"Changelog category" fixed

@robot-ch-test-poll robot-ch-test-poll added the pr-build Pull request with build/testing/packaging improvement label Sep 19, 2024
@antaljanosbenjamin
Copy link
Copy Markdown
Member

I fixed the description, no the PR Check should pass. Hope you don't mind, it was faster to do it than to explain what to do.

@antaljanosbenjamin
Copy link
Copy Markdown
Member

antaljanosbenjamin commented Sep 19, 2024

Now everything should be fine, I think. Let's see. If it doesn't trigger a proper rerun, please merge master or rebase on current master to trigger a new run of CI.

@robot-ch-test-poll4
Copy link
Copy Markdown
Contributor

robot-ch-test-poll4 commented Sep 19, 2024

This is an automated comment for commit 2edd2be with description of existing statuses. It's updated for the latest CI running

❌ Click here to open a full report in a separate page

Check nameDescriptionStatus
Stress testRuns stateless functional tests concurrently from several clients to detect concurrency-related errors❌ failure
Successful checks
Check nameDescriptionStatus
AST fuzzerRuns randomly generated queries to catch program errors. The build type is optionally given in parenthesis. If it fails, ask a maintainer for help✅ success
BuildsThere's no description for the check yet, please add it to tests/ci/ci_config.py:CHECK_DESCRIPTIONS✅ success
BuzzHouse (asan)There's no description for the check yet, please add it to tests/ci/ci_config.py:CHECK_DESCRIPTIONS✅ success
BuzzHouse (debug)There's no description for the check yet, please add it to tests/ci/ci_config.py:CHECK_DESCRIPTIONS✅ success
BuzzHouse (msan)There's no description for the check yet, please add it to tests/ci/ci_config.py:CHECK_DESCRIPTIONS✅ success
BuzzHouse (tsan)There's no description for the check yet, please add it to tests/ci/ci_config.py:CHECK_DESCRIPTIONS✅ success
BuzzHouse (ubsan)There's no description for the check yet, please add it to tests/ci/ci_config.py:CHECK_DESCRIPTIONS✅ success
ClickBenchRuns ClickBench with instant-attach table✅ success
Compatibility checkChecks that clickhouse binary runs on distributions with old libc versions. If it fails, ask a maintainer for help✅ success
Docker keeper imageThe check to build and optionally push the mentioned image to docker hub✅ success
Docker server imageThe check to build and optionally push the mentioned image to docker hub✅ success
Docs checkBuilds and tests the documentation✅ success
Fast testNormally this is the first check that is ran for a PR. It builds ClickHouse and runs most of stateless functional tests, omitting some. If it fails, further checks are not started until it is fixed. Look at the report to see which tests fail, then reproduce the failure locally as described here✅ success
Install packagesChecks that the built packages are installable in a clear environment✅ success
Integration testsThe integration tests report. In parenthesis the package type is given, and in square brackets are the optional part/total tests✅ success
Performance ComparisonMeasure changes in query performance. The performance test report is described in detail here. In square brackets are the optional part/total tests✅ success
Stateless testsRuns stateless functional tests for ClickHouse binaries built in various configurations -- release, debug, with sanitizers, etc✅ success
Style checkRuns a set of checks to keep the code style clean. If some of tests failed, see the related log from the report✅ success
Unit testsRuns the unit tests for different release types✅ success
Upgrade checkRuns stress tests on server version from last release and then tries to upgrade it to the version from the PR. It checks if the new server can successfully startup without any errors, crashes or sanitizer asserts✅ success

@dmitry-sles-novikov dmitry-sles-novikov changed the title Fix NATS integration tests WIP Fix NATS integration tests Sep 20, 2024
@dmitry-sles-novikov dmitry-sles-novikov marked this pull request as draft September 20, 2024 17:19
@dmitry-sles-novikov dmitry-sles-novikov marked this pull request as ready for review September 25, 2024 17:37
@dmitry-sles-novikov
Copy link
Copy Markdown
Contributor Author

dmitry-sles-novikov commented Dec 14, 2024

all tests except test_storage_s3_queue/test.py::test_alter_settings passed. I am ready to continue review

@dmitry-sles-novikov dmitry-sles-novikov changed the title [WIP] Fix NATS integration tests Fix NATS integration tests Dec 14, 2024
@antaljanosbenjamin
Copy link
Copy Markdown
Member

Sorry for missing out on the review, I was flooded with other issues, got sick and now I am on holidays. I will try to get back to this as soon as possible and take care of it.

Copy link
Copy Markdown
Member

@antaljanosbenjamin antaljanosbenjamin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work! I will try to merge a recent master. If I cannot manage it (meaning you disabled it), then I will ask you to do it. After that I can merge it.

@dmitry-sles-novikov
Copy link
Copy Markdown
Contributor Author

@antaljanosbenjamin, is there something wrong with the PR?

P.S. At the next step, I plan to change the async model of receiving messages by nats consumer to synchronous, and then implement support for jet stream.

@antaljanosbenjamin
Copy link
Copy Markdown
Member

Sorry, I missed this PR. So the PR seems okay, however the CI was really bad, thus I didn't have the confidence to merge the PR. Right now as far as I see we have issues with PR that are coming from a fork repo. Once the fix is done I will merge master again and make another attempt to merge this PR.

Thank you for your understanding, I will focus on this PR more.

@maxknv
Copy link
Copy Markdown
Member

maxknv commented Jan 29, 2025

Sorry, I missed this PR. So the PR seems okay, however the CI was really bad, thus I didn't have the confidence to merge the PR. Right now as far as I see we have issues with PR that are coming from a fork repo. Once the fix is done I will merge master again and make another attempt to merge this PR.

Thank you for your understanding, I will focus on this PR more.

@antaljanosbenjamin this ci run has not beed affected by that issue. the issue was in checking out a fork repo which failed right at the beginning and blocked everything else

@antaljanosbenjamin
Copy link
Copy Markdown
Member

this ci run has not beed affected by that issue

Yes the last run long ago, but I wasn't sure if the issue would affect this PR or not. I was expecting that to be merged soon (I saw on slack you are working on it), so I opted to wait for you PR.

@maxknv
Copy link
Copy Markdown
Member

maxknv commented Jan 30, 2025

Yes the last run long ago, but I wasn't sure if the issue would affect this PR or not. I was expecting that to be merged soon (I saw on slack you are working on it), so I opted to wait for you PR.

I see. The branch can be updated now, if needed. That issue is fixed on master

@antaljanosbenjamin
Copy link
Copy Markdown
Member

I don't see any NATS related issues in the postprocessed gdb log, I will merge this PR.

@antaljanosbenjamin antaljanosbenjamin added this pull request to the merge queue Jan 31, 2025
Merged via the queue into ClickHouse:master with commit dab0e93 Jan 31, 2025
@robot-ch-test-poll2 robot-ch-test-poll2 added the pr-synced-to-cloud The PR is synced to the cloud repo label Jan 31, 2025
@dmitry-sles-novikov dmitry-sles-novikov deleted the fix_nats_tests branch February 3, 2025 07:06
@dmitry-sles-novikov dmitry-sles-novikov restored the fix_nats_tests branch February 3, 2025 13:22
@dmitry-sles-novikov dmitry-sles-novikov deleted the fix_nats_tests branch April 8, 2025 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

can be tested Allows running workflows for external contributors pr-build Pull request with build/testing/packaging improvement pr-synced-to-cloud The PR is synced to the cloud repo submodule changed At least one submodule changed in this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants