Skip to content

ddl: use real start ts for recover table snapshot - #68229

Merged
ti-chi-bot[bot] merged 2 commits into
pingcap:masterfrom
expxiaoli:fix_68222
May 13, 2026
Merged

ti-chi-bot[bot] merged 2 commits into
pingcap:masterfrom
expxiaoli:fix_68222

Conversation

@expxiaoli

@expxiaoli expxiaoli commented May 8, 2026 •

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: close #68222

Problem Summary:

RECOVER TABLE and FLASHBACK TABLE reconstruct dropped/truncated table metadata from the drop/truncate DDL history job. Before this PR, TiDB used the job's StartTS as the snapshot timestamp.

However, StartTS is assigned when the DDL job is inserted into mysql.tidb_ddl_job, not when the job actually starts running. If a DROP TABLE job is queued while an earlier DDL on the same table is still pending, the drop-table job's StartTS may point to stale table metadata.

For example:

  1. CREATE TABLE t (id INT PRIMARY KEY, col_a INT, col_b INT).
  2. Queue ALTER TABLE t DROP COLUMN col_a.
  3. Queue DROP TABLE t before the drop-column job finishes.
  4. The drop-column job finishes first, then the drop-table job runs.
  5. RECOVER TABLE t may reconstruct metadata from the drop-table job's StartTS, where col_a still existed.

As a result, the recovered table metadata and the recover-table history job's BinlogInfo.TableInfo may contain stale columns that were no longer part of the table when it was actually dropped.

What changed and how does it work?

This PR introduces ddl.GetRecoverTableSnapshotTS(job) for reconstructing dropped/truncated table metadata:

  • Use job.RealStartTS if it is available.
  • Fall back to job.StartTS for compatibility with older history jobs where RealStartTS may be zero.

RealStartTS is set when the DDL worker actually starts running the job, so it represents the schema state immediately before the drop/truncate job begins changing the table metadata. This is the correct snapshot for recovering the table definition.

The new snapshot selection is used by:

  • RECOVER TABLE BY JOB ...
  • RECOVER TABLE <table_name>
  • FLASHBACK TABLE ...
  • shared history-job scanning for dropped/truncated table metadata

The GC safe point validation is also applied only after filtering to drop/truncate table jobs, so unrelated history jobs are not validated with recover-table snapshot semantics.

A regression test is added to make the stale snapshot case deterministic with DDL failpoints:

  1. Pause DDL scheduling before jobs are loaded and delivered.
  2. Submit ALTER TABLE ... DROP COLUMN col_a and wait until it is queued.
  3. Submit DROP TABLE ... and wait until it is queued.
  4. Release DDL scheduling so the drop-column job finishes before the drop-table job starts.
  5. Recover the table by the drop-table job ID.
  6. Assert the recovered table and the recover-table history job's BinlogInfo.TableInfo.Columns do not contain col_a.

make bazel_prepare was run because this PR adds a new top-level Go test function in an existing *_test.go file.

Check List

Tests

  • Unit test
    • GOSUMDB=sum.golang.org GOPATH=/Users/xiaoli/go ./tools/check/failpoint-go-test.sh pkg/ddl/tests/serial -run TestRecoverTableUsesRealStartTSForQueuedDropTable -count=1
    • GOSUMDB=sum.golang.org GOPATH=/Users/xiaoli/go make bazel_prepare
    • GOSUMDB=sum.golang.org GOPATH=/Users/xiaoli/go make lint
    • git diff --check
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No need to test
    • I checked and no code files have been changed.

Side effects

  • Performance regression: Consumes more CPU
  • Performance regression: Consumes more Memory
  • Breaking backward compatibility

Documentation

  • Affects user behaviors
  • Contains syntax changes
  • Contains variable changes
  • Contains experimental features
  • Changes MySQL compatibility

Release note

Please refer to Release Notes Language Style Guide to write a quality release note.

Fix an issue that RECOVER TABLE and FLASHBACK TABLE might restore stale table metadata when a drop or truncate table job was queued before preceding table DDL changes finished.

Summary by CodeRabbit

  • Bug Fixes

    • Fixed table and database recovery operations to use the correct snapshot timestamp when drop or truncate operations are queued behind other DDL commands.
  • Tests

    • Added regression tests validating recovery and flashback operations with queued DDL jobs.

Review Change Stack

@ti-chi-bot ti-chi-bot Bot added do-not-merge/needs-triage-completed release-note Denotes a PR that will be considered when it comes time to generate release notes. labels May 8, 2026
@pantheon-ai

pantheon-ai Bot commented May 8, 2026 •

Copy link
Copy Markdown

@expxiaoli I've received your pull request and will start the review. I'll conduct a thorough review covering code quality, potential issues, and implementation details.

⏳ This process typically takes 10-30 minutes depending on the complexity of the changes.

ℹ️ Learn more details on Pantheon AI.

@ti-chi-bot ti-chi-bot Bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label May 8, 2026
@tiprow

tiprow Bot commented May 8, 2026

Copy link
Copy Markdown

Hi @expxiaoli. Thanks for your PR.

PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test all.

I understand the commands that are listed here.

Details

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.

@coderabbitai

coderabbitai Bot commented May 8, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 57a3fede-8d82-4167-a3ae-57eb497e27fd

📥 Commits

Reviewing files that changed from the base of the PR and between 2585d69 and 007d9fe.

📒 Files selected for processing (4)
  • pkg/ddl/ddl.go
  • pkg/ddl/tests/serial/BUILD.bazel
  • pkg/ddl/tests/serial/serial_test.go
  • pkg/executor/ddl.go
✅ Files skipped from review due to trivial changes (1)
  • pkg/ddl/tests/serial/BUILD.bazel
🚧 Files skipped from review as they are similar to previous changes (3)
  • pkg/executor/ddl.go
  • pkg/ddl/ddl.go
  • pkg/ddl/tests/serial/serial_test.go

📝 Walkthrough

Walkthrough

This PR fixes a DDL metadata correctness issue where recover operations were using stale snapshots for queued-drop scenarios. It introduces a helper to prefer the actual job start time (RealStartTS) over the queued time (StartTS), propagates this through DDL store and executor paths, and validates the fix with comprehensive regression tests.

Changes

Recover Table Snapshot Timestamp Fix

Layer / File(s) Summary
Snapshot Timestamp Helper Export
pkg/ddl/ddl.go
New exported GetRecoverSnapshotTS function returns job.RealStartTS when non-zero, otherwise job.StartTS, providing a single point for snapshot-timestamp selection across all recover operations.
DDL Store Query Update
pkg/ddl/ddl.go
GetDropOrTruncateTableInfoFromJobsByStore derives snapshotTS via the new helper and uses it for both GC safe-point validation and snapshot metadata lookup; type filtering now occurs before validation rather than after.
Executor Recover/Flashback Paths
pkg/executor/ddl.go
Recover-table, flashback-table, and flashback-database execution paths all compute snapshotTS via the helper and apply it consistently for GC validation, snapshot info-schema/metadata loading, and result metadata population.
Regression Tests and Test Infrastructure
pkg/ddl/tests/serial/serial_test.go, pkg/ddl/tests/serial/BUILD.bazel
Adds TestRecoverTableUsesRealStartTSForQueuedDropTable and TestFlashbackDatabaseUsesRealStartTSForQueuedDropSchema using failpoints to force queued-drop ordering, verifying metadata correctness; includes strconv import and increases Bazel shard count from 20 to 22.

Sequence Diagram

sequenceDiagram
  participant Session1 as Session 1: ALTER
  participant Session2 as Session 2: DROP/RECOVER
  participant JobQ as Job Queue
  participant JobW as Job Worker
  Session1->>JobQ: submit ALTER (StartTS=T1)
  Session2->>JobQ: submit DROP (StartTS=T2, queued)
  JobW->>JobW: execute ALTER (RealStartTS=T3)
  JobW->>JobW: execute DROP (RealStartTS=T4, T4 > T2)
  Session2->>JobW: RECOVER/FLASHBACK uses RealStartTS=T4 snapshot
  JobW-->>Session2: restored metadata reflects T4 state
Loading

Estimated Code Review Effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested Labels

size/M

Suggested Reviewers

  • YangKeao
  • bb7133
  • wjhuang2016

Poem

🐰 A timestamp tale of queues and drops,
When jobs are waiting, time ne'er stops,
RealStartTS beats the queued delay,
Now recovered tables show the right-way!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 42.86% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'ddl: use real start ts for recover table snapshot' clearly and concisely summarizes the main change: switching to RealStartTS for snapshot selection in recover table operations.
Description check ✅ Passed The PR description comprehensively covers the problem, solution, test approach, and includes the issue link (close #68222) and release notes as required by the template.
Linked Issues check ✅ Passed The changes fully address issue #68222 by implementing GetRecoverSnapshotTS to use RealStartTS for snapshot selection and applying it across RECOVER TABLE and FLASHBACK TABLE operations with appropriate test coverage.
Out of Scope Changes check ✅ Passed All changes are directly related to fixing the stale snapshot metadata issue: new helper function, executor updates, regression tests, and a necessary Bazel shard_count adjustment for test parallelization.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
cmd/tidb-server/BUILD.bazel (1)

109-109: ⚡ Quick win

Revert this unrelated shard-count churn.

tidb-server_test is untouched elsewhere in this PR, so this 5→6 bump looks like stray bazel_prepare output rather than part of the recover-table fix. Please drop it unless you have target-specific runtime data showing this package now needs another shard.

Based on learnings: In this repository, running make bazel_prepare is only required when you make structural Bazel changes (e.g., adding/moving/removing Go files, changing dependencies, or modifying go.mod/go.sum). For cosmetic changes or test-target tweaks that do not affect generated metadata (such as changing only the timeout attribute of a go_test rule), do not run or commit the make bazel_prepare output.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@cmd/tidb-server/BUILD.bazel` at line 109, This change unnecessarily bumps
shard_count from 5 to 6 for the tidb-server_test target; revert the unrelated
bazel_prepare churn by setting shard_count back to its original value (restore
"shard_count = 5" in the BUILD.bazel entry that configures tidb-server_test) and
do not commit generated bazel_prepare output for non-structural changes—ensure
only intentional Bazel metadata edits remain.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pkg/ddl/ddl.go`:
- Around line 1334-1341: The schema-recovery path currently uses job.StartTS (in
getRecoverDBByName) and can restore stale metadata for queued DROP DATABASE
jobs; change getRecoverDBByName to use the same snapshot-selection rule as
GetRecoverTableSnapshotTS (i.e., prefer job.RealStartTS when non-zero, otherwise
fall back to job.StartTS), or factor the logic into a shared helper (e.g.,
GetRecoverSnapshotTS) and call it from both GetRecoverTableSnapshotTS and
getRecoverDBByName; update/add a regression test that simulates a queued DROP
DATABASE where earlier table DDL finishes before the drop starts to ensure
FLASHBACK/RECOVER DATABASE uses RealStartTS.

---

Nitpick comments:
In `@cmd/tidb-server/BUILD.bazel`:
- Line 109: This change unnecessarily bumps shard_count from 5 to 6 for the
tidb-server_test target; revert the unrelated bazel_prepare churn by setting
shard_count back to its original value (restore "shard_count = 5" in the
BUILD.bazel entry that configures tidb-server_test) and do not commit generated
bazel_prepare output for non-structural changes—ensure only intentional Bazel
metadata edits remain.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 12b9c8c8-d4be-4bc3-b4e0-828e889ccb5c

📥 Commits

Reviewing files that changed from the base of the PR and between f30c9a6 and c4e3d52.

📒 Files selected for processing (6)
  • cmd/tidb-server/BUILD.bazel
  • pkg/ddl/ddl.go
  • pkg/ddl/tests/serial/BUILD.bazel
  • pkg/ddl/tests/serial/serial_test.go
  • pkg/executor/ddl.go
  • pkg/util/signal/BUILD.bazel

Comment thread pkg/ddl/ddl.go Outdated
@codecov

codecov Bot commented May 8, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 25 lines in your changes missing coverage. Please review.
✅ Project coverage is 78.7740%. Comparing base (8ad6083) to head (007d9fe).
⚠️ Report is 7 commits behind head on master.

Additional details and impacted files
@@               Coverage Diff                @@
##             master     #68229        +/-   ##
================================================
+ Coverage   77.7059%   78.7740%   +1.0680%     
================================================
  Files          1991       2003        +12     
  Lines        552094     561784      +9690     
================================================
+ Hits         429010     442540     +13530     
+ Misses       122164     117102      -5062     
- Partials        920       2142      +1222     
Flag Coverage Δ
integration 47.6786% <0.0000%> (+7.8767%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
dumpling 60.4888% <ø> (ø)
parser ∅ <ø> (∅)
br 66.0505% <ø> (+2.9594%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@ti-chi-bot ti-chi-bot Bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels May 8, 2026
@expxiaoli

expxiaoli commented May 9, 2026 •

Copy link
Copy Markdown
Contributor Author

/retest-required

1 similar comment
@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@tiprow

tiprow Bot commented May 9, 2026

Copy link
Copy Markdown

@expxiaoli: PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test.

Details

In response to this:

/retest-required

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.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@tiprow

tiprow Bot commented May 11, 2026

Copy link
Copy Markdown

@expxiaoli: PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test.

Details

In response to this:

/retest-required

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.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@tiprow

tiprow Bot commented May 12, 2026

Copy link
Copy Markdown

@expxiaoli: PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test.

Details

In response to this:

/retest-required

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.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest

@tiprow

tiprow Bot commented May 12, 2026

Copy link
Copy Markdown

@expxiaoli: PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test.

Details

In response to this:

/retest

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.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/test

@ti-chi-bot

ti-chi-bot Bot commented May 12, 2026

Copy link
Copy Markdown

@expxiaoli: The /test command needs one or more targets.
The following commands are available to trigger required jobs:

/test build
/test check-dev
/test check-dev2
/test mysql-test
/test pull-br-integration-test
/test pull-build-next-gen
/test pull-integration-e2e-test
/test pull-integration-realcluster-test-next-gen
/test pull-lightning-integration-test
/test pull-mysql-client-test
/test pull-mysql-client-test-next-gen
/test pull-unit-test-ddlv1
/test pull-unit-test-next-gen
/test unit-test

The following commands are available to trigger optional jobs:

/test pingcap/tidb/canary_ghpr_unit_test
/test pull-br-integration-test-next-gen
/test pull-check-deps
/test pull-common-test
/test pull-e2e-test
/test pull-error-log-review
/test pull-integration-common-test
/test pull-integration-copr-test
/test pull-integration-ddl-test
/test pull-integration-ddl-test-next-gen
/test pull-integration-e2e-test-next-gen
/test pull-integration-jdbc-test
/test pull-integration-mysql-test
/test pull-integration-nodejs-test
/test pull-integration-python-orm-test
/test pull-mysql-test-next-gen
/test pull-sqllogic-test
/test pull-tiflash-integration-test

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

pingcap/tidb/ghpr_build
pingcap/tidb/ghpr_check
pingcap/tidb/ghpr_check2
pingcap/tidb/ghpr_mysql_test
pingcap/tidb/ghpr_unit_test
pingcap/tidb/pull_br_integration_test
pingcap/tidb/pull_build_next_gen
pingcap/tidb/pull_integration_e2e_test
pingcap/tidb/pull_integration_realcluster_test_next_gen
pingcap/tidb/pull_lightning_integration_test
pingcap/tidb/pull_mysql_client_test
pingcap/tidb/pull_mysql_client_test_next_gen
pingcap/tidb/pull_unit_test_ddlv1
pingcap/tidb/pull_unit_test_next_gen
pull-check-deps
pull-error-log-review
Details

In response to this:

/test

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.

@tiprow

tiprow Bot commented May 12, 2026

Copy link
Copy Markdown

@expxiaoli: PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test.

Details

In response to this:

/test

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.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/test check-issue-triage-complete

@ti-chi-bot

ti-chi-bot Bot commented May 12, 2026

Copy link
Copy Markdown

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

/test build
/test check-dev
/test check-dev2
/test mysql-test
/test pull-br-integration-test
/test pull-build-next-gen
/test pull-integration-e2e-test
/test pull-integration-realcluster-test-next-gen
/test pull-lightning-integration-test
/test pull-mysql-client-test
/test pull-mysql-client-test-next-gen
/test pull-unit-test-ddlv1
/test pull-unit-test-next-gen
/test unit-test

The following commands are available to trigger optional jobs:

/test pingcap/tidb/canary_ghpr_unit_test
/test pull-br-integration-test-next-gen
/test pull-check-deps
/test pull-common-test
/test pull-e2e-test
/test pull-error-log-review
/test pull-integration-common-test
/test pull-integration-copr-test
/test pull-integration-ddl-test
/test pull-integration-ddl-test-next-gen
/test pull-integration-e2e-test-next-gen
/test pull-integration-jdbc-test
/test pull-integration-mysql-test
/test pull-integration-nodejs-test
/test pull-integration-python-orm-test
/test pull-mysql-test-next-gen
/test pull-sqllogic-test
/test pull-tiflash-integration-test

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

pingcap/tidb/ghpr_build
pingcap/tidb/ghpr_check
pingcap/tidb/ghpr_check2
pingcap/tidb/ghpr_mysql_test
pingcap/tidb/ghpr_unit_test
pingcap/tidb/pull_br_integration_test
pingcap/tidb/pull_build_next_gen
pingcap/tidb/pull_integration_e2e_test
pingcap/tidb/pull_integration_realcluster_test_next_gen
pingcap/tidb/pull_lightning_integration_test
pingcap/tidb/pull_mysql_client_test
pingcap/tidb/pull_mysql_client_test_next_gen
pingcap/tidb/pull_unit_test_ddlv1
pingcap/tidb/pull_unit_test_next_gen
pull-check-deps
pull-error-log-review
Details

In response to this:

/test check-issue-triage-complete

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.

@tiprow

tiprow Bot commented May 12, 2026

Copy link
Copy Markdown

@expxiaoli: PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test.

Details

In response to this:

/test check-issue-triage-complete

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.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@tiprow

tiprow Bot commented May 12, 2026

Copy link
Copy Markdown

@expxiaoli: PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test.

Details

In response to this:

/retest-required

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.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@tiprow

tiprow Bot commented May 12, 2026

Copy link
Copy Markdown

@expxiaoli: PRs from untrusted users cannot be marked as trusted with /ok-to-test in this repo meaning untrusted PR authors can never trigger tests themselves. Collaborators can still trigger tests on the PR using /test.

Details

In response to this:

/retest-required

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.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/ok-to-test

@ti-chi-bot ti-chi-bot Bot added the ok-to-test Indicates a PR is ready to be tested. label May 12, 2026
@ti-chi-bot ti-chi-bot Bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed do-not-merge/needs-triage-completed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels May 12, 2026
@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@ti-chi-bot ti-chi-bot Bot added approved needs-1-more-lgtm Indicates a PR needs 1 more LGTM. labels May 12, 2026

@YangKeao YangKeao left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM 👍

@ti-chi-bot

ti-chi-bot Bot commented May 12, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: djshow832, YangKeao

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

The pull request process is described 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

@ti-chi-bot ti-chi-bot Bot added lgtm and removed needs-1-more-lgtm Indicates a PR needs 1 more LGTM. labels May 12, 2026
@ti-chi-bot

ti-chi-bot Bot commented May 12, 2026

Copy link
Copy Markdown

[LGTM Timeline notifier]

Timeline:

  • 2026-05-12 09:39:59.189031695 +0000 UTC m=+172167.721811015: ☑️ agreed by djshow832.
  • 2026-05-12 09:55:30.902135225 +0000 UTC m=+173099.434914544: ☑️ agreed by YangKeao.

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

7 similar comments
@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@expxiaoli

Copy link
Copy Markdown
Contributor Author

/retest-required

@ti-chi-bot
ti-chi-bot Bot merged commit e44fadc into pingcap:master May 13, 2026
39 checks passed
yongman pushed a commit to yongman/tidb that referenced this pull request Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved lgtm ok-to-test Indicates a PR is ready to be tested. release-note Denotes a PR that will be considered when it comes time to generate release notes. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ddl: recover table may restore stale table metadata after queued drop table

3 participants