Skip to content

*: use task key in TiCI requests | tidb-test=13ccf8de48e8db2290ff884598444d0508606bbf tiflash=feature-fts#67786

Open
OliverS929 wants to merge 2 commits intopingcap:feature/ftsfrom
OliverS929:import-into-taskkey-prefix
Open

*: use task key in TiCI requests | tidb-test=13ccf8de48e8db2290ff884598444d0508606bbf tiflash=feature-fts#67786
OliverS929 wants to merge 2 commits intopingcap:feature/ftsfrom
OliverS929:import-into-taskkey-prefix

Conversation

@OliverS929
Copy link
Copy Markdown
Contributor

@OliverS929 OliverS929 commented Apr 15, 2026

What problem does this PR solve?

Issue Number: ref #63937

Problem Summary:
TiCI needs the full TiDB task key instead of only the numeric id, so it can identify task type and query task status for GC.

What changed and how does it work?

This PR updates the TiDB -> TiCI task identifier wiring for both IMPORT INTO and DDL TiCI paths.

  • IMPORT INTO now passes the full task key to TiCI writer-group initialization and post-process requests.
  • The importer-local id is kept unchanged for non-TiCI logic.
  • DDL TiCI requests now use the DDL backfill task key instead of the raw job id.
  • This covers TiCI-related GetImportStoragePrefix, FinishIndexUpload, and DDL global-sort pre-split requests.
  • Add unit tests for the task-key wiring on both IMPORT INTO and DDL paths.

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • No need to test
    • I checked and no code files have been changed.

Executed:

  • make failpoint-enable && ( go test -run 'TestTiCITaskIDForImportIntoUsesTaskKey|TestGetTableImporterSetsTiCITaskID' --tags=intest ./pkg/dxf/importinto && go test -run 'TestTiCITaskIDForImporter|TestCheckRequirementsWithTiCIIndexLocalSort' --tags=intest ./pkg/executor/importer ); rc=$?; make failpoint-disable; exit $rc
  • make failpoint-enable && ( go test -run 'TestNewTiCIDataWriterGroupUsesInjectedManagerFactory|TestGetImportStoragePrefix|TestFinishIndexUploadHelper' --tags=intest ./pkg/tici ); rc=$?; make failpoint-disable; exit $rc
  • make failpoint-enable && ( go test -run 'TestFullTextIndexSysvarsPassedToTiCI|TestBackfillingSchedulerGlobalSortModeTiCIPreSplit|TestTiCITaskIDForDDLUsesTaskKey' --tags=intest ./pkg/ddl ); rc=$?; make failpoint-disable; exit $rc

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.

None

Summary by CodeRabbit

  • Refactor

    • Improved task identifier generation consistency across import-into and DDL operations, centralizing task key derivation logic.
    • Enhanced TiCI integration with better task ID propagation throughout the import workflow.
  • Tests

    • Added comprehensive test coverage for task identifier generation and validation.
    • Extended test infrastructure with failpoint support for improved testing of TiCI interactions.

@ti-chi-bot ti-chi-bot bot added do-not-merge/invalid-title release-note-none Denotes a PR that doesn't merit a release note. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Apr 15, 2026
@tiprow
Copy link
Copy Markdown

tiprow bot commented Apr 15, 2026

Hi @OliverS929. 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
Copy link
Copy Markdown

coderabbitai bot commented Apr 15, 2026

📝 Walkthrough

Walkthrough

Replaces numeric job.ID string usage with canonical task-key-based TiDB task IDs across DXF import-into, importer, DDL, and TiCI wiring; adds helpers and fields to propagate TiDB-side task identifiers and extends test coverage and TiCI test instrumentation.

Changes

Cohort / File(s) Summary
DXF Import-Into
pkg/dxf/importinto/task_executor.go, pkg/dxf/importinto/subtask_executor.go, pkg/dxf/importinto/task_executor_test.go
Add ticiTaskIDForImportInto helper; set LoadDataController.TiDBTaskIDForTiCI during importer init; use computed TiCI task ID for TiCI writer-group init; add tests validating mapping and wiring.
Core Importer
pkg/executor/importer/import.go, pkg/executor/importer/table_import.go, pkg/executor/importer/table_import_test.go
Add TiDBTaskIDForTiCI field to LoadDataController; add ticiTaskIDForImporter to prefer that field when initializing TiCI writer groups; tests for fallback behavior.
DDL / Backfill utilities
pkg/ddl/index.go, pkg/ddl/ingest/engine_mgr.go, pkg/ddl/backfilling_dist_scheduler.go, pkg/ddl/backfilling_import_cloud.go, pkg/ddl/ddl_test.go, pkg/ddl/backfilling_dist_scheduler_test.go, pkg/ddl/index_modify_test.go
Introduce ticiTaskIDForDDL/delegate to ddlutil.BuildBackfillTaskKey and replace strconv.FormatInt(...) usages with task-key helpers; add tests asserting TaskKey usage and extend index-related test instrumentation.
DDL util + BUILD
pkg/ddl/util/util.go, pkg/ddl/util/BUILD.bazel
Add BuildBackfillTaskKey(jobID, mergeTempIdx) helper that composes canonical backfill task keys; add kerneltype dependency in BUILD.
TiCI manager & write
pkg/tici/tici_manager_client.go, pkg/tici/tici_manager_client_test.go, pkg/tici/tici_write.go, pkg/tici/tici_write_test.go
Add failpoint-captured mock request getters/resetters for TiCI requests; tighten test matchers; centralize manager-ctx+etcd initialization with injection support and improve cleanup; add tests for injected manager factory and tighter request validation.
Misc tests & housekeeping
various _test.go files
Add and update unit tests across packages to validate new task-key behavior and TiCI request handling; remove now-unused strconv imports where applicable.

Sequence Diagram(s)

sequenceDiagram
    participant DXF as DXF Executor
    participant TaskMeta as TaskMeta/DDL Job
    participant Ctrl as LoadDataController
    participant Importer as TableImporter
    participant Backend as Local Backend / TiCI Client
    participant TiCI as TiCI Service

    DXF->>TaskMeta: read JobID
    DXF->>DXF: compute tidbTaskID = ticiTaskIDFor*(JobID)
    DXF->>Ctrl: InitDataStore(...) then set TiDBTaskIDForTiCI=tidbTaskID
    DXF->>Importer: NewTableImporter(controller)
    Importer->>Importer: resolve tidbTaskID = ticiTaskIDForImporter(controller, importerID)
    Importer->>Backend: InitTiCIWriterGroup(tidbTaskID, ...)
    Backend->>TiCI: send Init/Create requests with TidbTaskId
    TiCI-->>Backend: responses
    Backend-->>Importer: writer group ready
    Importer-->>DXF: importer ready
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested labels

component/import, size/M, ok-to-test

Suggested reviewers

  • wjhuang2016
  • GMHDBJD
  • joechenrh

Poem

🐰 I hop from job to TiCI door,
Keys in paw, not numbers more.
From DXF down through importer trail,
TaskKeys guide the upload tale. 🥕

🚥 Pre-merge checks | ✅ 1 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.63% 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 PR title uses vague terminology ('use task key in TiCI requests') combined with cryptic test/build identifiers that don't clearly convey the specific scope or intent of the changeset to someone scanning commit history. Clarify the title to specify which systems are affected (e.g., 'Use task key instead of job ID for TiCI requests in IMPORT INTO and DDL workflows') and consider removing or documenting the test branch references separately.
✅ Passed checks (1 passed)
Check name Status Explanation
Description check ✅ Passed The description includes the required Issue Number (ref #63937), clear Problem Summary, What changed and how it works, completed Check List with unit tests, and executed test commands.

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

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

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.

Copy link
Copy Markdown

@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.

🧹 Nitpick comments (1)
pkg/dxf/importinto/task_executor_test.go (1)

137-139: Prefer unified importer teardown in test cleanup.

Optional: use tableImporter.Close() (via t.Cleanup) instead of manually closing controller/backend pieces, to keep teardown aligned with production lifecycle.

♻️ Optional cleanup refactor
-	tableImporter.LoadDataController.Close()
-	tableImporter.Backend().CloseEngineMgr()
+	t.Cleanup(func() {
+		require.NoError(t, tableImporter.Close())
+	})
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/dxf/importinto/task_executor_test.go` around lines 137 - 139, The test
manually closes components via tableImporter.LoadDataController.Close() and
tableImporter.Backend().CloseEngineMgr(); instead, call the unified teardown
method tableImporter.Close() and register it with t.Cleanup (e.g.,
t.Cleanup(tableImporter.Close)) so the importer is torn down the same way as
production and cleanup runs automatically even on test failure.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@pkg/dxf/importinto/task_executor_test.go`:
- Around line 137-139: The test manually closes components via
tableImporter.LoadDataController.Close() and
tableImporter.Backend().CloseEngineMgr(); instead, call the unified teardown
method tableImporter.Close() and register it with t.Cleanup (e.g.,
t.Cleanup(tableImporter.Close)) so the importer is torn down the same way as
production and cleanup runs automatically even on test failure.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 4623ce1b-2f2c-4297-8f21-641b7a9714a2

📥 Commits

Reviewing files that changed from the base of the PR and between 8c0acf8 and 293003a.

📒 Files selected for processing (6)
  • pkg/dxf/importinto/subtask_executor.go
  • pkg/dxf/importinto/task_executor.go
  • pkg/dxf/importinto/task_executor_test.go
  • pkg/executor/importer/import.go
  • pkg/executor/importer/table_import.go
  • pkg/executor/importer/table_import_test.go

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 15, 2026

Codecov Report

❌ Patch coverage is 50.00000% with 50 lines in your changes missing coverage. Please review.
✅ Project coverage is 75.5780%. Comparing base (bd3b320) to head (94dfa26).
⚠️ Report is 28 commits behind head on feature/fts.

Additional details and impacted files
@@                 Coverage Diff                 @@
##           feature/fts     #67786        +/-   ##
===================================================
- Coverage      76.8610%   75.5780%   -1.2831%     
===================================================
  Files             1960       1945        -15     
  Lines           555677     558759      +3082     
===================================================
- Hits            427099     422299      -4800     
- Misses          127116     136018      +8902     
+ Partials          1462        442      -1020     
Flag Coverage Δ
integration 42.1392% <0.0000%> (-3.4702%) ⬇️
unit 73.9717% <50.0000%> (-0.0765%) ⬇️

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

Components Coverage Δ
dumpling 56.7974% <ø> (+0.0929%) ⬆️
parser ∅ <ø> (∅)
br 48.7421% <ø> (-17.5026%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@OliverS929 OliverS929 changed the title pkg/dxf/importinto, pkg/executor/importer: pass task key to TiCI for IMPORT INTO | tidb-test=13ccf8de48e8db2290ff884598444d0508606bbf tiflash=feature-fts *: use task key in TiCI requests | tidb-test=13ccf8de48e8db2290ff884598444d0508606bbf tiflash=feature-fts Apr 15, 2026
@ti-chi-bot ti-chi-bot bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed do-not-merge/invalid-title size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Apr 15, 2026
Copy link
Copy Markdown

@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

🧹 Nitpick comments (1)
pkg/tici/tici_manager_client_test.go (1)

145-176: Optional: extract the repeated GetImportStoragePrefix matcher into one local helper.

This keeps the test easier to maintain while preserving the stronger request validation you added.

♻️ Suggested cleanup
 func TestGetImportStoragePrefix(t *testing.T) {
@@
-	mockClient.
-		On("GetImportStoragePrefix", mock.Anything, mock.MatchedBy(func(req *GetImportStoragePrefixRequest) bool {
-			return matchKeyspace[*GetImportStoragePrefixRequest](keyspaceID)(req) &&
-				req.GetTidbTaskId() == taskID &&
-				req.GetTableId() == tblID &&
-				slices.Equal(req.GetIndexIds(), indexIDs)
-		})).
+	matchReq := func(req *GetImportStoragePrefixRequest) bool {
+		return matchKeyspace[*GetImportStoragePrefixRequest](keyspaceID)(req) &&
+			req.GetTidbTaskId() == taskID &&
+			req.GetTableId() == tblID &&
+			slices.Equal(req.GetIndexIds(), indexIDs)
+	}
+
+	mockClient.
+		On("GetImportStoragePrefix", mock.Anything, mock.MatchedBy(matchReq)).
 		Return(&GetImportStoragePrefixResponse{Status: ErrorCode_SUCCESS, JobId: 100, StorageUri: "/s3/path?endpoint=http://127.0.0.1"}, nil).
 		Once()
@@
-	mockClient.
-		On("GetImportStoragePrefix", mock.Anything, mock.MatchedBy(func(req *GetImportStoragePrefixRequest) bool {
-			return matchKeyspace[*GetImportStoragePrefixRequest](keyspaceID)(req) &&
-				req.GetTidbTaskId() == taskID &&
-				req.GetTableId() == tblID &&
-				slices.Equal(req.GetIndexIds(), indexIDs)
-		})).
+	mockClient.
+		On("GetImportStoragePrefix", mock.Anything, mock.MatchedBy(matchReq)).
@@
-	mockClient.
-		On("GetImportStoragePrefix", mock.Anything, mock.MatchedBy(func(req *GetImportStoragePrefixRequest) bool {
-			return matchKeyspace[*GetImportStoragePrefixRequest](keyspaceID)(req) &&
-				req.GetTidbTaskId() == taskID &&
-				req.GetTableId() == tblID &&
-				slices.Equal(req.GetIndexIds(), indexIDs)
-		})).
+	mockClient.
+		On("GetImportStoragePrefix", mock.Anything, mock.MatchedBy(matchReq)).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/tici/tici_manager_client_test.go` around lines 145 - 176, The test
repeats the same mock.MatchedBy matcher for GetImportStoragePrefix calls;
extract that matcher into a local variable (e.g., importPrefixMatcher or
getImportStoragePrefixMatcher) defined once in tici_manager_client_test.go and
reuse it in each mockClient.On call and any subsequent expectations; ensure the
matcher closure still references keyspaceID, taskID, tblID, and indexIDs and
returns the same bool check (using
matchKeyspace[*GetImportStoragePrefixRequest](keyspaceID)(req) &&
req.GetTidbTaskId() == taskID && req.GetTableId() == tblID &&
slices.Equal(req.GetIndexIds(), indexIDs)) so behavior and validation remain
identical.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pkg/ddl/index_modify_test.go`:
- Around line 1992-1995: Add an explicit negative assertion that
GetImportStoragePrefix was not called: after capturing raw from
tici.GetMockTiCIFinishIndexUploadRequest() (the variable named raw in this test
and the mock method GetImportStoragePrefix), assert that the captured request
for GetImportStoragePrefix is empty/nil (or that the mock recorded zero calls)
so the test fails if GetImportStoragePrefix is invoked; update the test around
tici.GetMockTiCIFinishIndexUploadRequest() / raw to include that single
deterministic assertion and nothing else.

---

Nitpick comments:
In `@pkg/tici/tici_manager_client_test.go`:
- Around line 145-176: The test repeats the same mock.MatchedBy matcher for
GetImportStoragePrefix calls; extract that matcher into a local variable (e.g.,
importPrefixMatcher or getImportStoragePrefixMatcher) defined once in
tici_manager_client_test.go and reuse it in each mockClient.On call and any
subsequent expectations; ensure the matcher closure still references keyspaceID,
taskID, tblID, and indexIDs and returns the same bool check (using
matchKeyspace[*GetImportStoragePrefixRequest](keyspaceID)(req) &&
req.GetTidbTaskId() == taskID && req.GetTableId() == tblID &&
slices.Equal(req.GetIndexIds(), indexIDs)) so behavior and validation remain
identical.
🪄 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: 530cbe2b-970a-4803-912b-5097a7fd708b

📥 Commits

Reviewing files that changed from the base of the PR and between 293003a and 94dfa26.

📒 Files selected for processing (13)
  • pkg/ddl/backfilling_dist_scheduler.go
  • pkg/ddl/backfilling_dist_scheduler_test.go
  • pkg/ddl/backfilling_import_cloud.go
  • pkg/ddl/ddl_test.go
  • pkg/ddl/index.go
  • pkg/ddl/index_modify_test.go
  • pkg/ddl/ingest/engine_mgr.go
  • pkg/ddl/util/BUILD.bazel
  • pkg/ddl/util/util.go
  • pkg/tici/tici_manager_client.go
  • pkg/tici/tici_manager_client_test.go
  • pkg/tici/tici_write.go
  • pkg/tici/tici_write_test.go
✅ Files skipped from review due to trivial changes (2)
  • pkg/ddl/util/BUILD.bazel
  • pkg/ddl/backfilling_dist_scheduler.go

Comment on lines +1992 to +1995
// Empty-table fulltext add-index skips reorg/backfill, so TiCI upload finalization is
// still exercised here but GetImportStoragePrefix is not.
raw = tici.GetMockTiCIFinishIndexUploadRequest()
require.NotEmpty(t, raw)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add an explicit negative assertion for GetImportStoragePrefix.

The comment says this path should not call GetImportStoragePrefix, but the test never checks it. Please assert the captured request is empty to prevent silent regressions.

Suggested patch
 	// Empty-table fulltext add-index skips reorg/backfill, so TiCI upload finalization is
 	// still exercised here but GetImportStoragePrefix is not.
+	raw = tici.GetMockTiCIGetImportStoragePrefixRequest()
+	require.Empty(t, raw)
+
 	raw = tici.GetMockTiCIFinishIndexUploadRequest()
 	require.NotEmpty(t, raw)

As per coding guidelines, "Keep test changes minimal and deterministic; avoid broad golden/testdata churn unless required."

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// Empty-table fulltext add-index skips reorg/backfill, so TiCI upload finalization is
// still exercised here but GetImportStoragePrefix is not.
raw = tici.GetMockTiCIFinishIndexUploadRequest()
require.NotEmpty(t, raw)
// Empty-table fulltext add-index skips reorg/backfill, so TiCI upload finalization is
// still exercised here but GetImportStoragePrefix is not.
raw = tici.GetMockTiCIGetImportStoragePrefixRequest()
require.Empty(t, raw)
raw = tici.GetMockTiCIFinishIndexUploadRequest()
require.NotEmpty(t, raw)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pkg/ddl/index_modify_test.go` around lines 1992 - 1995, Add an explicit
negative assertion that GetImportStoragePrefix was not called: after capturing
raw from tici.GetMockTiCIFinishIndexUploadRequest() (the variable named raw in
this test and the mock method GetImportStoragePrefix), assert that the captured
request for GetImportStoragePrefix is empty/nil (or that the mock recorded zero
calls) so the test fails if GetImportStoragePrefix is invoked; update the test
around tici.GetMockTiCIFinishIndexUploadRequest() / raw to include that single
deterministic assertion and nothing else.

@OliverS929
Copy link
Copy Markdown
Contributor Author

/retest

@tiprow
Copy link
Copy Markdown

tiprow bot commented Apr 15, 2026

@OliverS929: 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.

@OliverS929
Copy link
Copy Markdown
Contributor Author

/retest

@tiprow
Copy link
Copy Markdown

tiprow bot commented Apr 16, 2026

@OliverS929: 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.

@OliverS929
Copy link
Copy Markdown
Contributor Author

/retest

@tiprow
Copy link
Copy Markdown

tiprow bot commented Apr 16, 2026

@OliverS929: 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.

@OliverS929
Copy link
Copy Markdown
Contributor Author

/retest

@tiprow
Copy link
Copy Markdown

tiprow bot commented Apr 16, 2026

@OliverS929: 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.

Comment thread pkg/ddl/util/util.go
)

// BuildBackfillTaskKey generates the canonical dist-task key for a DDL backfill job.
func BuildBackfillTaskKey(jobID int64, mergeTempIdx bool) string {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

if that's only for tici.

Can we name it more Coherent with tici index, something like AddIndex/1, ImportInto/1

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is not only for TiCI, but a broader rewrite of the generic task key generation logic for DDL, with the goal of minimizing additional imports and package dependencies.

@OliverS929
Copy link
Copy Markdown
Contributor Author

/test pull_br_integration_test

@OliverS929 OliverS929 changed the title *: use task key in TiCI requests | tidb-test=13ccf8de48e8db2290ff884598444d0508606bbf tiflash=feature-fts *: use task key in TiCI requests | tidb-test=13ccf8de48e8db2290ff884598444d0508606bbf tiflash=master Apr 16, 2026
@ti-chi-bot
Copy link
Copy Markdown

ti-chi-bot bot commented Apr 16, 2026

@OliverS929: 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-integration-e2e-test
/test pull-lightning-integration-test
/test pull-mysql-client-test
/test pull-unit-test-ddlv1
/test unit-test

The following commands are available to trigger optional jobs:

/test pingcap/tidb/canary_ghpr_unit_test
/test pull-common-test
/test pull-e2e-test
/test pull-integration-common-test
/test pull-integration-copr-test
/test pull-integration-ddl-test
/test pull-integration-jdbc-test
/test pull-integration-mysql-test
/test pull-integration-nodejs-test
/test pull-integration-python-orm-test
/test pull-integration-tici-test
/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_integration_e2e_test
pingcap/tidb/pull_integration_tici_test
pingcap/tidb/pull_lightning_integration_test
pingcap/tidb/pull_mysql_client_test
pingcap/tidb/pull_unit_test_ddlv1
Details

In response to this:

/test pull_br_integration_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
Copy link
Copy Markdown

tiprow bot commented Apr 16, 2026

@OliverS929: 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 pull_br_integration_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.

@OliverS929
Copy link
Copy Markdown
Contributor Author

/test pull-br-integration-test

@tiprow
Copy link
Copy Markdown

tiprow bot commented Apr 16, 2026

@OliverS929: 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 pull-br-integration-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.

@ti-chi-bot
Copy link
Copy Markdown

ti-chi-bot bot commented Apr 16, 2026

@OliverS929: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
pull-unit-test-ddlv1 94dfa26 link true /test pull-unit-test-ddlv1
pull-br-integration-test 94dfa26 link true /test pull-br-integration-test

Full PR test history. Your PR dashboard.

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. I understand the commands that are listed here.

@OliverS929 OliverS929 changed the title *: use task key in TiCI requests | tidb-test=13ccf8de48e8db2290ff884598444d0508606bbf tiflash=master *: use task key in TiCI requests | tidb-test=13ccf8de48e8db2290ff884598444d0508606bbf tiflash=feature-fts Apr 16, 2026
@ti-chi-bot
Copy link
Copy Markdown

ti-chi-bot bot commented Apr 20, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: wjhuang2016
Once this PR has been reviewed and has the lgtm label, please assign benjamin2037 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

@ti-chi-bot ti-chi-bot bot added the needs-1-more-lgtm Indicates a PR needs 1 more LGTM. label Apr 20, 2026
@ti-chi-bot
Copy link
Copy Markdown

ti-chi-bot bot commented Apr 20, 2026

[LGTM Timeline notifier]

Timeline:

  • 2026-04-20 04:53:18.068977908 +0000 UTC m=+1968803.274337955: ☑️ agreed by wjhuang2016.

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

Labels

needs-1-more-lgtm Indicates a PR needs 1 more LGTM. release-note-none Denotes a PR that doesn't merit a release note. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants