Skip to content

[DNM] test: panic when Lock::parse is called in tiflash proxy#10666

Closed
you06 wants to merge 1 commit intopingcap:masterfrom
you06:test-lock-parse-usage
Closed

[DNM] test: panic when Lock::parse is called in tiflash proxy#10666
you06 wants to merge 1 commit intopingcap:masterfrom
you06:test-lock-parse-usage

Conversation

@you06
Copy link
Copy Markdown
Contributor

@you06 you06 commented Jan 19, 2026

What problem does this PR solve?

Issue Number: close #xxx

Problem Summary:

What is changed and how it works?


Check List

Tests

  • Unit test
  • Integration test
  • Manual test (add detailed scripts or steps below)
  • 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

  • Chores
    • Updated submodule dependencies and configurations to maintain compatibility and support new testing requirements.

✏️ Tip: You can customize this high-level summary in your review settings.

Signed-off-by: you06 <you1474600@gmail.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. labels Jan 19, 2026
@ti-chi-bot
Copy link
Copy Markdown
Contributor

ti-chi-bot bot commented Jan 19, 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 fuzhe1989 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/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label Jan 19, 2026
@pingcap-cla-assistant
Copy link
Copy Markdown

pingcap-cla-assistant bot commented Jan 19, 2026

CLA assistant check
All committers have signed the CLA.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Jan 19, 2026

📝 Walkthrough

Walkthrough

Submodule configuration updates for tiflash-proxy: the source repository URL is redirected and a new branch specification is added. The submodule commit reference is pinned to a new version.

Changes

Cohort / File(s) Summary
Submodule Configuration
.gitmodules
Updated tiflash-proxy submodule URL from pingcap/tidb-engine-ext.git to you06/tikv.git and specified branch as test-lock-parse-usage
Submodule Pointer
contrib/tiflash-proxy
Advanced commit reference to c6cdbca6052340d325668b9101317560bd9790dd

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A little hop through git's domain,
Submodules shuffled, pointers rearranged,
New branches bloom, commits take aim,
The proxy dances—reconfigured, restaged! ✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description uses the template structure but is largely empty: no issue number, empty problem summary, empty commit message, all test checkboxes unchecked, and no explanation of what was changed. Fill in the Issue Number, Problem Summary, and commit-message sections with concrete details. Mark at least one test type checkbox and provide context about what changes were made to validate the test.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly indicates the main change: a test that triggers a panic when Lock::parse is called in the TiFlash proxy, marked as [DNM] (Do Not Merge).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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


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.

@ti-chi-bot
Copy link
Copy Markdown
Contributor

ti-chi-bot bot commented Jan 19, 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
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

🤖 Fix all issues with AI agents
In @.gitmodules:
- Around line 35-38: The submodule entry for "contrib/tiflash-proxy" is pointing
at a personal fork and a test branch which reintroduces fork/branch coupling;
update the submodule to use the official upstream TiKV repo (replace the URL
value under submodule "contrib/tiflash-proxy" with the upstream
https://github.com/tikv/tikv.git) and remove the branch = test-lock-parse-usage
line so builds use an explicit revision or Cargo/git rev pinning elsewhere; also
fix indentation on the path/url/branch lines to use tabs (match existing
.gitmodules tab style) so formatting is consistent.
🧹 Nitpick comments (1)
.gitmodules (1)

37-38: Align indentation style in .gitmodules.

Line 38 appears space-indented while neighboring entries use tabs; consider normalizing to avoid tooling or parsing inconsistencies.

✅ Suggested adjustment
-        branch = test-lock-parse-usage
+	branch = test-lock-parse-usage

@you06
Copy link
Copy Markdown
Contributor Author

you06 commented Jan 19, 2026

This PR's build passed the integration test with playground.

Boot log

arg matches is ArgMatches { args: {"data-dir": MatchedArg { occurs: 1, indices: [4], vals: ["/home/you06/.tiup/data/V8jcpFd/tiflash-0/proxy_data"] }, "status-addr": MatchedArg { occurs: 1, indices: [10], vals: ["127.0.0.1:20292"] }, "log-file": MatchedArg { occurs: 1, indices: [14], vals: ["/home/you06/.tiup/data/V8jcpFd/tiflash-0/tiflash_tikv.log"] }, "memory-limit-ratio": MatchedArg { occurs: 1, indices: [2], vals: ["0.800000"] }, "engine-version": MatchedArg { occurs: 1, indices: [16], vals: ["v9.0.0-test"] }, "config": MatchedArg { occurs: 1, indices: [20], vals: ["/home/you06/.tiup/data/V8jcpFd/tiflash-0/tiflash_proxy.toml"] }, "pd-endpoints": MatchedArg { occurs: 1, indices: [24], vals: ["127.0.0.1:2379"] }, "engine-label": MatchedArg { occurs: 1, indices: [6], vals: ["tiflash"] }, "engine-git-hash": MatchedArg { occurs: 1, indices: [18], vals: ["c23a81a9476808eeacdc62403dab74e6b19d3b04"] }, "addr": MatchedArg { occurs: 1, indices: [12], vals: ["127.0.0.1:20170"] }, "engine-addr": MatchedArg { occurs: 1, indices: [22], vals: ["127.0.0.1:3930"] }, "advertise-addr": MatchedArg { occurs: 1, indices: [8], vals: ["127.0.0.1:20170"] }}, subcommand: None, usage: Some("USAGE:\n TiFlash Proxy [FLAGS] [OPTIONS] --engine-git-hash --engine-label --engine-version ") }
reads 1"] [thread_id=1]

Integration Test

mysql> select count(1) from record;
+----------+
| count(1) |
+----------+
|     9100 |
+----------+
1 row in set (0.00 sec)

mysql> ALTER TABLE record SET TIFLASH REPLICA 1;
Query OK, 0 rows affected (0.04 sec)

mysql> SELECT * FROM information_schema.tiflash_replica;
+--------------+------------+----------+---------------+-----------------+-----------+----------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_ID | REPLICA_COUNT | LOCATION_LABELS | AVAILABLE | PROGRESS |
+--------------+------------+----------+---------------+-----------------+-----------+----------+
| test         | record     |      116 |             1 |                 |         1 |        1 |
+--------------+------------+----------+---------------+-----------------+-----------+----------+
1 row in set (0.00 sec)

mysql> explain select count(1) from record;
+------------------------------+----------+--------------+---------------+---------------------------------------+
| id                           | estRows  | task         | access object | operator info                         |
+------------------------------+----------+--------------+---------------+---------------------------------------+
| HashAgg_25                   | 1.00     | root         |               | funcs:count(Column#8)->Column#4       |
| └─TableReader_27             | 1.00     | root         |               | MppVersion: 3, data:ExchangeSender_26 |
|   └─ExchangeSender_26        | 1.00     | mpp[tiflash] |               | ExchangeType: PassThrough             |
|     └─HashAgg_9              | 1.00     | mpp[tiflash] |               | funcs:count(test.record.id)->Column#8 |
|       └─TableFullScan_24     | 10000.00 | mpp[tiflash] | table:record  | keep order:false, stats:pseudo        |
+------------------------------+----------+--------------+---------------+---------------------------------------+
5 rows in set (0.00 sec)

mysql> explain analyze select count(1) from record;
+------------------------------+----------+---------+--------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------+---------+
| id                           | estRows  | actRows | task         | access object | execution info                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | operator info                         | memory    | disk    |
+------------------------------+----------+---------+--------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------+---------+
| HashAgg_25                   | 1.00     | 1       | root         |               | time:74.2ms, open:61.4ms, close:13.2µs, loops:2, RU:3.47, partial_worker:{wall_time:12.746789ms, concurrency:5, task_num:1, tot_wait:12.614761ms, tot_exec:15.159µs, tot_time:63.222554ms, max:12.649696ms, p95:12.649696ms}, final_worker:{wall_time:12.773849ms, concurrency:5, task_num:5, tot_wait:5.361µs, tot_exec:86ns, tot_time:63.389698ms, max:12.685123ms, p95:12.685123ms}                                                                                                                                                                                                                                                          | funcs:count(Column#8)->Column#4       | 6.99 KB   | 0 Bytes |
| └─TableReader_27             | 1.00     | 1       | root         |               | time:74ms, open:61.3ms, close:10.2µs, loops:2, cop_task: {num: 2, max: 0s, min: 0s, avg: 0s, p95: 0s, copr_cache_hit_ratio: 0.00}, fetch_resp_duration: 12.5ms                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | MppVersion: 3, data:ExchangeSender_26 | 966 Bytes | N/A     |
|   └─ExchangeSender_26        | 1.00     | 1       | mpp[tiflash] |               | tiflash_task:{time:10.1ms, loops:1, threads:1}, tiflash_network: {inner_zone_send_bytes: 24}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | ExchangeType: PassThrough             | N/A       | N/A     |
|     └─HashAgg_9              | 1.00     | 1       | mpp[tiflash] |               | tiflash_task:{time:10.1ms, loops:1, threads:1}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | funcs:count(test.record.id)->Column#8 | N/A       | N/A     |
|       └─TableFullScan_24     | 10000.00 | 9100    | mpp[tiflash] | table:record  | tiflash_task:{time:10.1ms, loops:8, threads:32}, tiflash_scan:{mvcc_input_rows:9100, mvcc_input_bytes:154700, mvcc_output_rows:9100, local_regions:8, remote_regions:0, tot_learner_read:1ms, region_balance:{instance_num: 1, max/min: 8/8=1.000000}, delta_rows:9100, delta_bytes:900900, segments:1, stale_read_regions:0, tot_build_snapshot:0ms, tot_build_bitmap:3ms, tot_build_inputstream:3ms, min_local_stream:5ms, max_local_stream:6ms, dtfile:{data_scanned_rows:9100, data_skipped_rows:0, mvcc_scanned_rows:9100, mvcc_skipped_rows:0, lm_filter_scanned_rows:0, lm_filter_skipped_rows:0, tot_rs_index_check:0ms, tot_read:0ms}} | keep order:false, stats:pseudo        | N/A       | N/A     |
+------------------------------+----------+---------+--------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+---------------------------------------+-----------+---------+
5 rows in set (0.08 sec)

mysql> select count(1) from record;
+----------+
| count(1) |
+----------+
|     9100 |
+----------+
1 row in set (0.01 sec)

@you06 you06 closed this Jan 19, 2026
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-none Denotes a PR that doesn't merit a release note. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant