Skip to content

[WIP] tests: Columnar CI pipeline#10868

Draft
JaySon-Huang wants to merge 10 commits into
pingcap:masterfrom
JaySon-Huang:columnar_ci
Draft

[WIP] tests: Columnar CI pipeline#10868
JaySon-Huang wants to merge 10 commits into
pingcap:masterfrom
JaySon-Huang:columnar_ci

Conversation

@JaySon-Huang
Copy link
Copy Markdown
Contributor

@JaySon-Huang JaySon-Huang commented May 25, 2026

What problem does this PR solve?

Issue Number: ref #10844

Problem Summary:

What is changed and how it works?


Local verification

# Step1: prepare the binaries
# checkout the tidb PR https://github.com/pingcap/tidb/pull/67935
# cd tidb directory and buiild a next-gen tidb-server
make server NEXT_GEN=1

# checkout the tikv https://github.com/tidbcloud/cloud-storage-engine
# cd tikv directory and build next-gen tikv-server and tikv-worker
make release

# checkout this branch for tiflash
# cd tiflash directory and build next-gen tiflash column
cd cmake-build-debug
cmake -GNinja -DCMAKE_BUILD_TYPE=DEBUG -DENABLE_NEXT_GEN=1 -DENABLE_NEXT_GEN_COLUMNAR=1 ..
ninja -j 16 tiflash
cmake --install . --component=tiflash-release --prefix=/DATA/disk1/jaysonhuang/tiflash/tests/.build/tiflash

# Step 2: update the tests/fullstack-test-next-gen-columnar/_env.sh
export LOCAL_TIKV_BIN_DIR="${LOCAL_TIKV_BIN_DIR:-/DATA/disk1/jaysonhuang/cloud-storage-engine/target/release}"
export LOCAL_TIDB_BIN_DIR="${LOCAL_TIDB_BIN_DIR:-/DATA/disk1/jaysonhuang/tidb/bin}"

# Step 3: Run the testing script

Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
    See the "Local verification" above
  • No code

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

None

Summary by CodeRabbit

  • New Features

    • Added a reusable Docker Compose test wrapper and supporting configs for “next‑gen” columnar tests.
    • New helpers to prepare test data directories and wire local binary overrides.
    • Added a suite of test compose/override files and environment scripts for configurable test clusters.
  • Improvements

    • Signal-based, configurable test timeouts and improved test-run failure tracking/reporting.
    • Standardized test locale and ignored test log files for cleaner runs.

Review Change Stack

Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
@ti-chi-bot ti-chi-bot Bot added do-not-merge/needs-linked-issue release-note-none Denotes a PR that doesn't merit a release note. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. labels May 25, 2026
@pantheon-ai
Copy link
Copy Markdown

pantheon-ai Bot commented May 25, 2026

@JaySon-Huang 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
Copy link
Copy Markdown
Contributor

ti-chi-bot Bot commented May 25, 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 yongman 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 size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label May 25, 2026
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 25, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 106dc58f-00c8-4a4e-8d38-d26a4ebec1f0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This PR introduces Docker-based testing infrastructure for next-gen columnar tests and improves test execution reliability. It adds shared utilities for managing test components, new configuration files, Compose definitions for full service orchestration, environment variable management, and test failure tracking with timeout support.

Changes

Docker Testing Infrastructure for Next-Gen Columnar

Layer / File(s) Summary
Locale and ignore patterns setup
tests/.gitignore, tests/docker/_env.sh
.gitignore ignores *.log files; Docker environment locale forced to C.utf-8 for both LANG and LC_ALL.
Shared Docker utilities for next-gen
tests/docker/util.sh
New functions: prepare_next_gen_data_dirs() creates data/log directories, validate_local_binary() checks binary presence, append_local_binary_overrides() wires local binary overrides, setup_next_gen_compose_files() selects compose files with Rocky Linux 9 detection and conditional TiDB port exposure.
Next-gen columnar component configurations
tests/docker/next-gen-columnar-config/\*.toml
Defines PD, TiDB, TiKV, TiKV-worker, TiFlash CN, and TiFlash CN proxy configurations with disaggregated TiFlash mode, S3-compatible object storage, raftstore settings, and schema management.
Docker Compose definitions for next-gen columnar
tests/docker/next-gen-columnar-yaml/cluster.yaml, tests/docker/next-gen-columnar-yaml/disagg_tiflash.yaml
Full cluster YAML with MinIO, PD, TiKV, TiDB, and service dependencies; TiFlash CN service with disaggregated mode configuration and profiling flags.
Next-gen configuration and version cleanup
tests/docker/next-gen-config/tidb.toml, tests/docker/next-gen-yaml/\*.yaml
Adds tidb_service_scope to next-gen-config; removes top-level Compose version declarations and command-line flag duplication.
Test environment variables and compose shortcuts
tests/fullstack-test-next-gen-columnar/_env.sh, tests/fullstack-test-next-gen/compose.sh, tests/fullstack-test-next-gen-columnar/compose.sh
Environment variables for binary directories, hub address, and branch normalization (mastermaster-next-gen, cloud-enginecloud-engine-next-gen); compose wrapper shortcuts delegate to shared ../docker/compose.sh.
Local binary override YAML files
tests/docker/override-yaml/expose_tidb.yaml, tests/docker/override-yaml/local_pd.yaml, tests/docker/override-yaml/local_tidb.yaml, tests/docker/override-yaml/local_tikv.yaml
Docker Compose overrides for mounting locally built binaries and exposing TiDB port to host.
Next-gen test orchestration refactoring
tests/fullstack-test-next-gen/run.sh
Refactors next-gen test execution to use setup_next_gen_compose_files() and prepare_next_gen_data_dirs() helpers instead of inline compose file and YAML selection logic.

Test Execution and Reliability Improvements

Layer / File(s) Summary
Test timeout implementation
tests/run-test.py
Adds test_timeout environment variable (default 120 seconds), TestTimeoutError exception, SIGALRM-based timeout handler, and run_with_timeout() wrapper around test parsing; timeout triggers failure exit.
Test failure tracking and reporting
tests/run-test.sh
Adds global FAILED_TESTS counter tracking failures across runs; refactors run_file() to capture exit codes and conditionally continue/exit on failure; rewrites run_dir() to use process substitution instead of pipe-based loops; normalizes continue_on_error boolean handling and fixes fullstack variable check; reports cumulative failures.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Suggested labels

size/XL

Suggested reviewers

  • JinheLin
  • windtalker
  • CalvinNeo

Poem

A warren of tests now runs in Docker's embrace,
With TiFlash columnar glowing in next-gen space,
Each config and compose file fits its place,
Timeouts guard against hanging long-running race,
And failure counts let no bug hide its face! 🐰⏱️

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
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.
Description check ⚠️ Warning PR description lacks critical details: problem statement is incomplete, commit message is empty, and no clear explanation of changes or their purpose is provided. Complete the problem summary, provide a detailed commit message explaining all changes, and document the purpose and scope of the columnar CI pipeline work.
Title check ❓ Inconclusive The title '[WIP] tests: Columnar CI pipeline' is vague and generic, using non-descriptive terms that don't clearly convey the specific changes in the changeset. Revise the title to be more specific about the main change; for example, 'Add next-generation columnar test infrastructure with Docker Compose configuration' would better describe the substantial additions of test scripts and configuration files.
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ 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.

@JaySon-Huang JaySon-Huang marked this pull request as draft May 25, 2026 08:58
@JaySon-Huang
Copy link
Copy Markdown
Contributor Author

/retest

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: 6

🤖 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 `@tests/docker/next-gen-columnar-config/pd.toml`:
- Around line 15-20: Move the config key max-replicas out of the [dashboard]
table and place it under a [replication] table so PD's parser recognizes it;
specifically remove max-replicas = 1 from the [dashboard] block and add a
[replication] block containing max-replicas = 1 (use the same key name
"max-replicas" and create/locate the [replication] section in the same TOML
file).

In `@tests/docker/next-gen-columnar-yaml/cluster.yaml`:
- Around line 32-33: The docker-compose volume mounts still point at
"./next-gen-config/..." instead of the new "./next-gen-columnar-config/..."
directory, so replace each occurrence of the source paths like
"./next-gen-config/pd.toml" (and any other "./next-gen-config/..." mounts at the
noted spots) with "./next-gen-columnar-config/..." so the services use the new
columnar configs; ensure you update all instances mentioned (the mounts at the
shown diff and the other occurrences referenced) so pd.toml and related config
files are mounted from next-gen-columnar-config rather than the old directory.

In `@tests/docker/next-gen-columnar-yaml/disagg_tiflash.yaml`:
- Around line 24-25: The TiFlash CN service is still mounting legacy config
files "./next-gen-config/tiflash_cn.toml" and
"./next-gen-config/tiflash_cn_proxy.toml"; update those mount entries to
reference the new directory "./next-gen-columnar-config/tiflash_cn.toml" and
"./next-gen-columnar-config/tiflash_cn_proxy.toml" so TiFlash CN uses the
intended next-gen columnar configs (modify the two mount strings in
disagg_tiflash.yaml).

In `@tests/docker/util.sh`:
- Around line 175-176: The override_dir default points to the wrong location;
update the default value of the local variable override_dir (and the other
occurrences around the same block) from "../docker/next-gen-yaml/override" to
the correct "tests/docker/override-yaml" so compose will reference the PR's
override files; also verify any code paths that build compose file references
using LOCAL_*_BIN_DIR or EXPOSE_TIDB_PORT still concatenate against override_dir
and adjust those occurrences (around the 220-223 group) to use the new path
variable.

In `@tests/fullstack-test-next-gen/run.sh`:
- Around line 36-65: Define an on-exit cleanup function and register it with
trap so the compose teardown always runs even if a command fails: create an
on_exit() that does set +e; ${COMPOSE} "${COMPOSE_FILES[@]}" down;
clean_data_log and then trap 'on_exit' EXIT near the top of the script (before
calling ${COMPOSE} ... up and before wait_next_gen_env / invoking tests).
Reference symbols: on_exit, trap, ${COMPOSE}, "${COMPOSE_FILES[@]}",
wait_next_gen_env, clean_data_log, and ENV_ARGS to ensure teardown executes for
all failure paths.

In `@tests/run-test.py`:
- Around line 71-84: run_with_timeout can leave os.popen subprocesses running
when _timeout_handler triggers because exec_func may be interrupted during
p.readlines() before p.close(); fix by ensuring subprocess cleanup on timeout:
modify run_with_timeout to catch the timeout exception raised by
_timeout_handler (or detect the alarm in the except/finally) and invoke a
cleanup step that closes any open popen handles (e.g., accept an optional
on_timeout_cleanup callable in kwargs and call it, or document/implement that
exec_func returns or exposes the popen as p so run_with_timeout can call
p.close()/p.kill()); update references to run_with_timeout, _timeout_handler,
os.popen, exec_func, and p.close() accordingly so the spawned shell is always
closed when the alarm fires.
🪄 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: 53c2c064-7700-4cf6-a13f-745001a8dea9

📥 Commits

Reviewing files that changed from the base of the PR and between 2e721b3 and 94023a4.

📒 Files selected for processing (25)
  • tests/.gitignore
  • tests/docker/_env.sh
  • tests/docker/compose.sh
  • tests/docker/next-gen-columnar-config/pd.toml
  • tests/docker/next-gen-columnar-config/tidb.toml
  • tests/docker/next-gen-columnar-config/tiflash_cn.toml
  • tests/docker/next-gen-columnar-config/tiflash_cn_proxy.toml
  • tests/docker/next-gen-columnar-config/tikv-worker.toml
  • tests/docker/next-gen-columnar-config/tikv.toml
  • tests/docker/next-gen-columnar-yaml/cluster.yaml
  • tests/docker/next-gen-columnar-yaml/disagg_tiflash.yaml
  • tests/docker/next-gen-config/tidb.toml
  • tests/docker/next-gen-yaml/cluster.yaml
  • tests/docker/next-gen-yaml/disagg_tiflash.yaml
  • tests/docker/override-yaml/expose_tidb.yaml
  • tests/docker/override-yaml/local_pd.yaml
  • tests/docker/override-yaml/local_tidb.yaml
  • tests/docker/override-yaml/local_tikv.yaml
  • tests/docker/util.sh
  • tests/fullstack-test-next-gen-columnar/_env.sh
  • tests/fullstack-test-next-gen-columnar/compose.sh
  • tests/fullstack-test-next-gen/compose.sh
  • tests/fullstack-test-next-gen/run.sh
  • tests/run-test.py
  • tests/run-test.sh
💤 Files with no reviewable changes (1)
  • tests/docker/next-gen-yaml/disagg_tiflash.yaml

Comment thread tests/docker/next-gen-columnar-config/pd.toml
Comment thread tests/docker/next-gen-columnar-yaml/cluster.yaml Outdated
Comment thread tests/docker/next-gen-columnar-yaml/disagg_tiflash.yaml Outdated
Comment thread tests/docker/util.sh Outdated
Comment on lines +175 to +176
local override_dir="${2:-../docker/next-gen-yaml/override}"
local validate_binaries="${3:-true}"
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 | 🟠 Major | ⚡ Quick win

Fix override compose path mismatch.

The override directory/path points to ../docker/next-gen-yaml/override, but this PR’s override files are under tests/docker/override-yaml. With LOCAL_*_BIN_DIR or EXPOSE_TIDB_PORT, compose will reference non-existent files.

💡 Proposed fix
 function append_local_binary_overrides() {
   local -n compose_files=$1
-  local override_dir="${2:-../docker/next-gen-yaml/override}"
+  local override_dir="${2:-../docker/override-yaml}"
   local validate_binaries="${3:-true}"
@@
 function setup_next_gen_compose_files() {
@@
-  append_local_binary_overrides "${compose_files_name}" "../docker/next-gen-yaml/override" "${validate_binaries}"
+  append_local_binary_overrides "${compose_files_name}" "../docker/override-yaml" "${validate_binaries}"
   if [[ -n "${EXPOSE_TIDB_PORT:-}" ]]; then
-    compose_files+=(-f "../docker/next-gen-yaml/override/expose_tidb.yaml")
+    compose_files+=(-f "../docker/override-yaml/expose_tidb.yaml")
     echo "Exposing tidb0 on host port ${EXPOSE_TIDB_PORT}"
   fi
 }

Also applies to: 220-223

🤖 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 `@tests/docker/util.sh` around lines 175 - 176, The override_dir default points
to the wrong location; update the default value of the local variable
override_dir (and the other occurrences around the same block) from
"../docker/next-gen-yaml/override" to the correct "tests/docker/override-yaml"
so compose will reference the PR's override files; also verify any code paths
that build compose file references using LOCAL_*_BIN_DIR or EXPOSE_TIDB_PORT
still concatenate against override_dir and adjust those occurrences (around the
220-223 group) to use the new path variable.

Comment thread tests/fullstack-test-next-gen/run.sh
Comment thread tests/run-test.py
Comment on lines +71 to +84
def run_with_timeout(seconds, func, *args, **kwargs):
if seconds <= 0:
return func(*args, **kwargs)
if not hasattr(signal, 'SIGALRM'):
return func(*args, **kwargs)

old_handler = signal.signal(signal.SIGALRM, _timeout_handler)
signal.alarm(seconds)
try:
return func(*args, **kwargs)
finally:
signal.alarm(0)
signal.signal(signal.SIGALRM, old_handler)

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 | 🟠 Major | 🏗️ Heavy lift

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify that timeout is SIGALRM-based and command execution is via os.popen.
# Expected: signal.alarm usage in run_with_timeout and os.popen usage in exec_func.
rg -n -C3 'def run_with_timeout|signal\.alarm|def exec_func|os\.popen|p\.close\(' tests/run-test.py

Repository: pingcap/tiflash

Length of output: 779


Ensure os.popen subprocesses are cleaned up on SIGALRM timeouts

run_with_timeout() uses signal.alarm() (SIGALRM) with a handler that raises, which can interrupt exec_func() while it’s blocked in p.readlines(). Since exec_func() only reaches p.close() after readlines(), the timeout path can skip p.close() and leave the spawned shell command running/resource-leaking after the test aborts.

🤖 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 `@tests/run-test.py` around lines 71 - 84, run_with_timeout can leave os.popen
subprocesses running when _timeout_handler triggers because exec_func may be
interrupted during p.readlines() before p.close(); fix by ensuring subprocess
cleanup on timeout: modify run_with_timeout to catch the timeout exception
raised by _timeout_handler (or detect the alarm in the except/finally) and
invoke a cleanup step that closes any open popen handles (e.g., accept an
optional on_timeout_cleanup callable in kwargs and call it, or
document/implement that exec_func returns or exposes the popen as p so
run_with_timeout can call p.close()/p.kill()); update references to
run_with_timeout, _timeout_handler, os.popen, exec_func, and p.close()
accordingly so the spawned shell is always closed when the alarm fires.

@JaySon-Huang
Copy link
Copy Markdown
Contributor Author

/test ?

@ti-chi-bot
Copy link
Copy Markdown
Contributor

ti-chi-bot Bot commented May 25, 2026

@JaySon-Huang: The following commands are available to trigger required jobs:

/test pull-integration-next-gen
/test pull-integration-test
/test pull-unit-next-gen
/test pull-unit-test

The following commands are available to trigger optional jobs:

/test pull-error-log-review
/test pull-sanitizer-asan
/test pull-sanitizer-tsan

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

pingcap/tiflash/pull_integration_next_gen
pingcap/tiflash/pull_integration_test
pingcap/tiflash/pull_unit_next_gen
pingcap/tiflash/pull_unit_test
pull-sanitizer-asan
pull-sanitizer-tsan
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.

@JaySon-Huang
Copy link
Copy Markdown
Contributor Author

/test all

@JaySon-Huang
Copy link
Copy Markdown
Contributor Author

/test ?

@ti-chi-bot
Copy link
Copy Markdown
Contributor

ti-chi-bot Bot commented May 25, 2026

@JaySon-Huang: The following commands are available to trigger required jobs:

/test pull-integration-next-gen
/test pull-integration-test
/test pull-unit-next-gen
/test pull-unit-test

The following commands are available to trigger optional jobs:

/test pull-error-log-review
/test pull-sanitizer-asan
/test pull-sanitizer-tsan

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

pingcap/tiflash/pull_integration_next_gen
pingcap/tiflash/pull_integration_test
pingcap/tiflash/pull_unit_next_gen
pingcap/tiflash/pull_unit_test
pull-sanitizer-asan
pull-sanitizer-tsan
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.

@ti-chi-bot
Copy link
Copy Markdown
Contributor

ti-chi-bot Bot commented May 25, 2026

@JaySon-Huang: The following test 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-sanitizer-tsan f6052e5 link false /test pull-sanitizer-tsan

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.

@JaySon-Huang
Copy link
Copy Markdown
Contributor Author

/test ?

@ti-chi-bot
Copy link
Copy Markdown
Contributor

ti-chi-bot Bot commented May 25, 2026

@JaySon-Huang: The following commands are available to trigger required jobs:

/test pull-integration-next-gen
/test pull-integration-test
/test pull-unit-next-gen
/test pull-unit-test

The following commands are available to trigger optional jobs:

/test pull-error-log-review
/test pull-sanitizer-asan
/test pull-sanitizer-tsan

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

pingcap/tiflash/pull_integration_next_gen
pingcap/tiflash/pull_integration_test
pingcap/tiflash/pull_unit_next_gen
pingcap/tiflash/pull_unit_test
pull-sanitizer-asan
pull-sanitizer-tsan
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.

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.

♻️ Duplicate comments (1)
tests/docker/util.sh (1)

220-223: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Fix remaining override path mismatch in compose wiring.

setup_next_gen_compose_files still uses ../docker/next-gen-yaml/override, while overrides are under ../docker/override-yaml. This breaks local-binary and EXPOSE_TIDB_PORT override resolution.

Proposed fix
-  append_local_binary_overrides "${compose_files_name}" "../docker/next-gen-yaml/override" "${validate_binaries}"
+  append_local_binary_overrides "${compose_files_name}" "../docker/override-yaml" "${validate_binaries}"
   if [[ -n "${EXPOSE_TIDB_PORT:-}" ]]; then
-    compose_files+=(-f "../docker/next-gen-yaml/override/expose_tidb.yaml")
+    compose_files+=(-f "../docker/override-yaml/expose_tidb.yaml")
     echo "Exposing tidb0 on host port ${EXPOSE_TIDB_PORT}"
   fi
🤖 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 `@tests/docker/util.sh` around lines 220 - 223, In
setup_next_gen_compose_files, the override path is incorrect: update calls that
use "../docker/next-gen-yaml/override" (including the
append_local_binary_overrides invocation and the compose_files+=(-f
"../docker/next-gen-yaml/override/expose_tidb.yaml") line) to use the correct
"../docker/override-yaml" directory so local-binary overrides and
EXPOSE_TIDB_PORT resolution load the correct override files (ensure both the
append_local_binary_overrides argument and the expose_tidb.yaml compose_files
entry are changed).
🤖 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.

Duplicate comments:
In `@tests/docker/util.sh`:
- Around line 220-223: In setup_next_gen_compose_files, the override path is
incorrect: update calls that use "../docker/next-gen-yaml/override" (including
the append_local_binary_overrides invocation and the compose_files+=(-f
"../docker/next-gen-yaml/override/expose_tidb.yaml") line) to use the correct
"../docker/override-yaml" directory so local-binary overrides and
EXPOSE_TIDB_PORT resolution load the correct override files (ensure both the
append_local_binary_overrides argument and the expose_tidb.yaml compose_files
entry are changed).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 8186eda4-8b5a-4b3c-8770-6cee2bdde2cf

📥 Commits

Reviewing files that changed from the base of the PR and between 94023a4 and 92f7d19.

📒 Files selected for processing (11)
  • tests/docker/compose.sh
  • tests/docker/next-gen-columnar-config/pd.toml
  • tests/docker/next-gen-columnar-config/tidb.toml
  • tests/docker/next-gen-columnar-config/tiflash_cn.toml
  • tests/docker/next-gen-columnar-config/tiflash_cn_proxy.toml
  • tests/docker/next-gen-columnar-config/tikv-worker.toml
  • tests/docker/next-gen-columnar-config/tikv.toml
  • tests/docker/next-gen-columnar-yaml/cluster.yaml
  • tests/docker/next-gen-columnar-yaml/disagg_tiflash.yaml
  • tests/docker/next-gen-config/pd.toml
  • tests/docker/util.sh
✅ Files skipped from review due to trivial changes (5)
  • tests/docker/next-gen-config/pd.toml
  • tests/docker/next-gen-columnar-yaml/disagg_tiflash.yaml
  • tests/docker/next-gen-columnar-config/tikv-worker.toml
  • tests/docker/next-gen-columnar-config/tiflash_cn.toml
  • tests/docker/next-gen-columnar-config/pd.toml

Prepare for next-gen-columnar testing env setup
Add wait/prepare helpers that skip tiflash-wn0, wire them into the
columnar test directory, and symlink next-gen-columnar-config.

Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Signed-off-by: JaySon-Huang <tshent@qq.com>
Pin kvengine and related crates to the i64::MAX columnar read fix, and document how to maintain the dependency.
Embed kvengine git rev from Cargo.lock in version output and log it after logger init.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. release-note-none Denotes a PR that doesn't merit a release note. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant