Repository navigation
ci(seekdb): distribute native migrations across three shards - #2458
Conversation
PR oceanbase#2004 exhausted the 25-minute step after passing individual native cases. Spread all 39 nodes over three shards for each supported CI Python version; retain the preliminary checks and baseline stability repetitions. Constraint: Keep the 180-second node, 25-minute step and 60-minute job budgets. Scope-risk: CI scheduling only; no test selection or runtime behavior changes. Tested: pytest tests/test_ci_changes.py tests/test_ci_pipeline.py -q (125 passed); exact 39-node partition; full Python 3.11 shard 0 replay including prelude and baseline repetitions passed in 1041.98 seconds.
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are identified for the migration-test sharding change.
No open issues 🎉
What changed in this PR
This PR spreads seekDB native migration tests across three shards per Python version to reduce step-timeout risk following the CI failure on #2004.
Changes:
- Expands the shard matrix from two to three shards.
- Updates test-node distribution to use modulo three.
- Preserves test selection, preliminary tests, stability repetitions, diagnostics, and existing deadlines.
| File | Description |
|---|---|
.github/workflows/master.yml |
Expands the seekDB matrix and adjusts node distribution for three migration shards. |
Review effort: Balanced
hidb4ai
left a comment
There was a problem hiding this comment.
Reviewed 5190979. No blocking issues found. The three-shard matrix and matching modulo preserve complete, disjoint migration-node coverage, the preliminary tests, stability repetitions, and existing deadlines. No database tables or public interfaces are added. The complete six-job seekDB CI matrix remains pending.
The SQLite cleanup PR still used two migration shards and its Python 3.11 shard 0 exhausted the 25-minute unified-migration step. Merge the companion CI commit from oceanbase#2458 so this PR validates the three-shard layout itself. Constraint: Preserve all native cases, stability repeats and existing deadlines. Scope-risk: Merge only the two-line workflow change; SQLite source and managed policy bytes are unchanged. Tested: Combined CI classification/pipeline and SQLite profile/CLI suites: 190 passed with thread exceptions treated as errors; changed-file hooks and full Linux ty check passed.
frf12
left a comment
There was a problem hiding this comment.
Reviewed 5190979. No blocking findings. The matrix and modulo change preserve complete, disjoint migration coverage, shard-zero prerequisites and stability repetitions, and existing deadlines. The six-job SeekDB matrix and CI result have passed.
Which issue or RFC does this PR close?
Follow-up acceptance for #2084; addresses the seekDB CI failure on #2004.
Rationale for this change
The final #2004 run failed
code-seekdb (3.11, 0)because the unified-migration step exhausted its 25-minute total budget. Every completed native invocation passed; no invocation reached its 180-second deadline. With 39 collected nodes and two shards, the job still had nodes and stability repetitions remaining at the step deadline.Failure log: https://github.com/oceanbase/powercontext/actions/runs/41780344706/job/126426207866
What changes are included in this PR?
Distribute the same nodes across three shards per Python version instead of two. Keep the preliminary migration tests, the two additional baseline-adoption stability executions, diagnostics, and all existing deadlines (180 seconds per node, 25 minutes per step, 60 minutes per job).
Are there any user-facing changes?
CI scheduling only. No runtime, persistence, API, release-support policy, or test-selection changes.
How was this change tested?
pytest tests/test_ci_changes.py tests/test_ci_pipeline.py -q: 125 passed.ty check: passed.AI usage statement
OpenAI Codex assisted with investigation, implementation, and validation.