Skip to content

Conversation

@hongyunyan
Copy link
Collaborator

@hongyunyan hongyunyan commented Feb 2, 2026

What problem does this PR solve?

Issue Number: close #xxx

What is changed and how it works?

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No code

Questions

Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?

Release note

Please refer to [Release Notes Language Style Guide](https://pingcap.github.io/tidb-dev-guide/contribute-to-tidb/release-notes-style-guide.html) to write a quality release note.

If you don't think this PR needs a release note then fill it with `None`.

Summary by CodeRabbit

  • Tests
    • Updated integration test initialization with longer startup delays for improved stability in table movement scenarios.
    • Consolidated heavy integration test execution patterns to streamline test case grouping and consistency across test runs.

@ti-chi-bot ti-chi-bot bot added do-not-merge/needs-linked-issue release-note Denotes a PR that will be considered when it comes time to generate release notes. labels Feb 2, 2026
@ti-chi-bot
Copy link

ti-chi-bot bot commented Feb 2, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign tenfyzhong for approval. For more information see the Code Review Process.
Please ensure that each of them provides their approval before proceeding.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@hongyunyan
Copy link
Collaborator Author

/test help

@ti-chi-bot
Copy link

ti-chi-bot bot commented Feb 2, 2026

@hongyunyan: The specified target(s) for /test were not found.
The following commands are available to trigger required jobs:

/test pull-build
/test pull-cdc-kafka-integration-heavy
/test pull-cdc-kafka-integration-light
/test pull-cdc-mysql-integration-heavy
/test pull-cdc-mysql-integration-light
/test pull-cdc-storage-integration-heavy
/test pull-cdc-storage-integration-light
/test pull-check
/test pull-error-log-review
/test pull-unit-test

The following commands are available to trigger optional jobs:

/test pull-build-next-gen
/test pull-cdc-kafka-integration-heavy-next-gen
/test pull-cdc-kafka-integration-light-next-gen
/test pull-cdc-mysql-integration-heavy-next-gen
/test pull-cdc-mysql-integration-light-next-gen
/test pull-cdc-pulsar-integration-heavy
/test pull-cdc-pulsar-integration-heavy-next-gen
/test pull-cdc-pulsar-integration-light
/test pull-cdc-pulsar-integration-light-next-gen
/test pull-cdc-storage-integration-heavy-next-gen
/test pull-cdc-storage-integration-light-next-gen
/test pull-unit-test-next-gen

Use /test all to run the following jobs that were automatically triggered:

pull-error-log-review
Details

In response to this:

/test help

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@ti-chi-bot ti-chi-bot bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Feb 2, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 2, 2026

📝 Walkthrough

Walkthrough

Two integration test scripts modified: one adds 60-second initialization delays before table movement operations, the other consolidates MySQL heavy test groups to uniformly run identical test pairs instead of varied test cases. No functional logic changes beyond these additions.

Changes

Cohort / File(s) Summary
Changefeed Initialization Delays
tests/integration_tests/ddl_for_split_tables_with_merge_and_split/run.sh
Added 60-second sleep pauses in two functions: after preparing the changefeed in main() and after preparing the consistent changefeed in main_with_consistent().
Heavy Test Group Normalization
tests/integration_tests/run_heavy_it_in_ci.sh
Replaced individual test case lists in MySQL heavy test groups (G00–G15) with a consolidated pair of identical test names (ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split) for each group.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰✨ A rabbit hops through test delays,

With sleeps that stretch through changefeed days,

Groups consolidated, patterns aligned,

Test pairs dancing, harmonized!

Forward we bound, with steadier pace. 🌙

🚥 Pre-merge checks | ❌ 3
❌ Failed checks (2 warnings, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description contains only the template with unfilled placeholders; critical sections like 'What is changed and how it works' are empty, and the issue reference is the placeholder 'close #xxx'. Complete the description by filling in the issue number, explaining the changes made to the test scripts, and addressing the test checklist and release notes sections.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'wip' is vague and generic, providing no meaningful information about the actual changeset which modifies test scripts with sleep delays and test group consolidation. Replace the generic 'wip' title with a descriptive title that summarizes the main change, such as 'Add initialization delays and consolidate test groups in heavy IT tests'.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link

Summary of Changes

Hello @hongyunyan, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request appears to be a work-in-progress focused on debugging or stabilizing the ddl_for_split_tables_with_merge_and_split integration test. It introduces delays within the test script, likely to mitigate race conditions or timing sensitivities, and temporarily isolates this specific test in the CI heavy test suite for focused analysis.

Highlights

  • Test Script Modification: Added 60-second delays in the ddl_for_split_tables_with_merge_and_split/run.sh script in two locations, likely to address timing-related issues during table movement operations.
  • CI Configuration Change: Temporarily configured the run_heavy_it_in_ci.sh script to exclusively execute the ddl_for_split_tables_with_merge_and_split integration test across all mysql_groups.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request appears to be a work-in-progress for debugging purposes. No vulnerabilities or significant security issues were found in the provided code changes. However, it introduces hardcoded sleep commands in ddl_for_split_tables_with_merge_and_split/run.sh which can lead to test flakiness, and modifies run_heavy_it_in_ci.sh to run only a single test repeatedly, drastically reducing CI test coverage. These changes should be reverted before merging.

Comment on lines +33 to +63
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G01
'ddl_for_split_tables_with_random_move_table'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G02
'ddl_for_split_tables_with_failover'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G03
'cdc move_table in_flight_ddl_during_scheduling checkpoint_race_ddl_crash'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G04
'complex_transaction'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G05
'ddl_for_split_tables_with_merge_and_split syncpoint in_flight_syncpoint_during_scheduling syncpoint_check_ts random_drop_message'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G06
'ddl_for_split_tables_with_random_merge_and_split'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G07
'consistent_compatibility consistent_partition_table consistent_replicate_gbk consistent_replicate_ddl consistent_replicate_basic'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G08
'default_value http_proxies bank ddl_for_split_tables_random_schedule'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G09
'availability resolve_lock merge_table drop_many_tables ddl_for_split_tables'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G10
'consistent_replicate_nfs consistent_replicate_storage_file consistent_replicate_storage_file_large_value consistent_replicate_storage_s3'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G11
'multi_changefeeds ddl_wait ddl_reentrant force_replicate_table multi_source'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G12
'ddl_with_random_move_table'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G13
'tidb_mysql_test fail_over region_merge fail_over_ddl_mix_random_delay'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G14
'fail_over_ddl_mix'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G15
'fail_over_ddl_mix_with_syncpoint'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'

Choose a reason for hiding this comment

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

critical

This change replaces all MySQL heavy integration tests with a single test case repeated across all groups. This appears to be for debugging and should be reverted before merging, as it would severely reduce test coverage in the CI pipeline.

	'api_v2 generate_column many_pk_or_uk multi_source'
	# G01
	'ddl_for_split_tables_with_random_move_table'
	# G02
	'ddl_for_split_tables_with_failover'
	# G03
	'cdc move_table in_flight_ddl_during_scheduling checkpoint_race_ddl_crash'
	# G04
	'complex_transaction'
	# G05
	'ddl_for_split_tables_with_merge_and_split syncpoint in_flight_syncpoint_during_scheduling syncpoint_check_ts random_drop_message'
	# G06
	'ddl_for_split_tables_with_random_merge_and_split'
	# G07
	'consistent_compatibility consistent_partition_table consistent_replicate_gbk consistent_replicate_ddl consistent_replicate_basic'
	# G08
	'default_value http_proxies bank ddl_for_split_tables_random_schedule'
	# G09
	'availability resolve_lock merge_table drop_many_tables ddl_for_split_tables'
	# G10
	'consistent_replicate_nfs consistent_replicate_storage_file consistent_replicate_storage_file_large_value consistent_replicate_storage_s3'
	# G11
	'multi_changefeeds ddl_wait ddl_reentrant force_replicate_table multi_source'
	# G12
	'ddl_with_random_move_table'
	# G13
	'tidb_mysql_test fail_over region_merge fail_over_ddl_mix_random_delay'
	# G14
	'fail_over_ddl_mix'
	# G15
	'fail_over_ddl_mix_with_syncpoint'

main() {
prepare changefeed

sleep 60

Choose a reason for hiding this comment

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

medium

Using a fixed sleep can make tests flaky if the duration is too short, or slow them down unnecessarily if it's too long. It's better to poll for a specific condition. For example, you could create a loop that checks for the desired state of the changefeed before proceeding.

fi
prepare consistent_changefeed

sleep 60

Choose a reason for hiding this comment

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

medium

Similar to the previous comment, this fixed sleep should be replaced with a more deterministic wait. Polling for the specific condition you're waiting for will make the test more reliable and efficient.

@hongyunyan
Copy link
Collaborator Author

/test pull-cdc-mysql-integration-heavy-next-gen

@ti-chi-bot
Copy link

ti-chi-bot bot commented Feb 2, 2026

[FORMAT CHECKER NOTIFICATION]

Notice: To remove the do-not-merge/needs-linked-issue label, please provide the linked issue number on one line in the PR body, for example: Issue Number: close #123 or Issue Number: ref #456.

📖 For more info, you can check the "Contribute Code" section in the development guide.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@tests/integration_tests/run_heavy_it_in_ci.sh`:
- Around line 31-64: The mysql_groups array was overwritten with 16 identical
entries of ddl_for_split_tables_with_merge_and_split (duplicating the test
across all groups); revert this temporary debug change by restoring the original
diverse test-case strings into mysql_groups instead of repeating
ddl_for_split_tables_with_merge_and_split, ensuring each group contains the
intended unique test names and that groups remain balanced by cost as described
in the surrounding file documentation; if you needed to run that single test for
debugging, limit the change to a local or temporary branch or a one-off script
rather than replacing the mysql_groups contents in this file.
🧹 Nitpick comments (2)
tests/integration_tests/ddl_for_split_tables_with_merge_and_split/run.sh (2)

57-58: Add a comment explaining why the 60-second delay is necessary.

The 60-second sleep is a significant delay that adds to CI execution time. Without context, it's unclear whether this is:

  • Waiting for a specific initialization to complete
  • A workaround for a race condition
  • A temporary debugging measure

Please add a comment explaining the purpose, or consider using a more targeted approach (e.g., polling for a condition with timeout) instead of a fixed sleep.


105-106: Same as above: document the reason for this 60-second delay.

This mirrors the sleep added in main(). If both require the same wait time for the same reason, consider extracting a helper function or adding a shared constant with documentation explaining the requirement.

Comment on lines 31 to 64
mysql_groups=(
# G00
'api_v2 generate_column many_pk_or_uk multi_source'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G01
'ddl_for_split_tables_with_random_move_table'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G02
'ddl_for_split_tables_with_failover'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G03
'cdc move_table in_flight_ddl_during_scheduling checkpoint_race_ddl_crash'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G04
'complex_transaction'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G05
'ddl_for_split_tables_with_merge_and_split syncpoint in_flight_syncpoint_during_scheduling syncpoint_check_ts random_drop_message'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G06
'ddl_for_split_tables_with_random_merge_and_split'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G07
'consistent_compatibility consistent_partition_table consistent_replicate_gbk consistent_replicate_ddl consistent_replicate_basic'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G08
'default_value http_proxies bank ddl_for_split_tables_random_schedule'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G09
'availability resolve_lock merge_table drop_many_tables ddl_for_split_tables'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G10
'consistent_replicate_nfs consistent_replicate_storage_file consistent_replicate_storage_file_large_value consistent_replicate_storage_s3'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G11
'multi_changefeeds ddl_wait ddl_reentrant force_replicate_table multi_source'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G12
'ddl_with_random_move_table'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G13
'tidb_mysql_test fail_over region_merge fail_over_ddl_mix_random_delay'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G14
'fail_over_ddl_mix'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
# G15
'fail_over_ddl_mix_with_syncpoint'
'ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split'
)
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

This appears to be a temporary debugging change that should not be merged.

All 16 MySQL heavy test groups have been replaced with the same test case duplicated (ddl_for_split_tables_with_merge_and_split ddl_for_split_tables_with_merge_and_split). This effectively removes CI coverage for all other MySQL integration tests.

Based on the file's own documentation (lines 11-23), each group should contain diverse test cases to ensure coverage, and groups should be balanced by cost. This change:

  1. Removes coverage for all other MySQL heavy integration tests
  2. Runs the same test 32 times (16 groups × 2) instead of diverse tests
  3. Contradicts the documented purpose of this file

If this is for debugging the ddl_for_split_tables_with_merge_and_split test, please ensure the original test configurations are restored before merging.

🤖 Prompt for AI Agents
In `@tests/integration_tests/run_heavy_it_in_ci.sh` around lines 31 - 64, The
mysql_groups array was overwritten with 16 identical entries of
ddl_for_split_tables_with_merge_and_split (duplicating the test across all
groups); revert this temporary debug change by restoring the original diverse
test-case strings into mysql_groups instead of repeating
ddl_for_split_tables_with_merge_and_split, ensuring each group contains the
intended unique test names and that groups remain balanced by cost as described
in the surrounding file documentation; if you needed to run that single test for
debugging, limit the change to a local or temporary branch or a one-off script
rather than replacing the mysql_groups contents in this file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/needs-linked-issue release-note Denotes a PR that will be considered when it comes time to generate release notes. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant