VectorSearch Query failed when remote read happens
Open
Nobody has claimed this yet.
component/storage
severity/major
type/bug
- Dominant language
- C++
- Stars
- 1k
- Forks
- 423
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 24
Description
Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)
vectordbbench tidb --host 10.2.12.81 --port 8020 --case-type Performance768D1M
2. What did you expect to see? (Required)
3. What did you see instead (Required)
[2025/07/10 03:34:14.949 +08:00] [ERROR] [MPPTask.cpp:655] ["task running meets error: Code: 49, e.displayText() = DB::Exception: const ColumnInfo &TiDB::TableInfo::getColumnInfo(const ColumnID) const: Invalidate column id -2000 for table vector_bench_test, e.what() = DB::Exception, Stack trace:
0x55f27a315033 DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int) [tiflash+37519411]
dbms/src/Common/StackTrace.cpp:23
0x55f280f2875a TiDB::TableInfo::getColumnInfo(long) const [tiflash+150845274]
dbms/src/TiDB/Schema/TiDB.cpp:1316
0x55f28187d53a DB::RemoteRequest::build(std::__1::list<std::__1::reference_wrapper<DB::RegionInfo const>, std::__1::allocator<std::__1::reference_wrapper<DB::RegionInfo const>>> const&, DB::DAGContext&, DB::TiDBTableScan const&, TiDB::TableInfo const&, DB::FilterConditions const&, unsigned long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::shared_ptr<DB::Logger> const&) [tiflash+160630074]
dbms/src/Flash/Coprocessor/RemoteRequest.cpp:82
0x55f28185d5ee DB::DAGStorageInterpreter::buildRemoteRequests(std::__1::shared_ptr<DB::DM::ScanContext> const&) [tiflash+160499182]
dbms/src/Flash/Coprocessor/DAGStorageInterpreter.cpp:1633
0x55f28185ab80 DB::DAGStorageInterpreter::executeImpl(DB::PipelineExecutorContext&, DB::PipelineExecGroupBuilder&) [tiflash+160488320]
dbms/src/Flash/Coprocessor/DAGStorageInterpreter.cpp:371
0x55f28184f39b DB::PhysicalTableScan::buildPipeline(DB::PipelineBuilder&, DB::Context&, DB::PipelineExecutorContext&) [tiflash+160441243]
dbms/src/Flash/Coprocessor/DAGStorageInterpreter.cpp:317
0x55f281294f42 DB::PhysicalPlanNode::buildPipeline(DB::PipelineBuilder&, DB::Context&, DB::PipelineExecutorContext&) [tiflash+154435394]
dbms/src/Flash/Planner/PhysicalPlanNode.cpp:142
0x55f281294f42 DB::PhysicalPlanNode::buildPipeline(DB::PipelineBuilder&, DB::Context&, DB::PipelineExecutorContext&) [tiflash+154435394]
dbms/src/Flash/Planner/PhysicalPlanNode.cpp:142
0x55f281294f42 DB::PhysicalPlanNode::buildPipeline(DB::PipelineBuilder&, DB::Context&, DB::PipelineExecutorContext&) [tiflash+154435394]
dbms/src/Flash/Planner/PhysicalPlanNode.cpp:142
0x55f2812844e5 DB::PhysicalPlan::toPipeline(DB::PipelineExecutorContext&, DB::Context&) [tiflash+154367205]
dbms/src/Flash/Planner/PhysicalPlan.cpp:335
0x55f28121ca1c DB::PipelineExecutor::PipelineExecutor(std::__1::shared_ptr<MemoryTracker> const&, DB::AutoSpillTrigger*, std::__1::function<void (std::__1::shared_ptr<DB::OperatorSpillContext> const&)> const&, DB::Context&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) [tiflash+153942556]
dbms/src/Flash/Executor/PipelineExecutor.cpp:47
0x55f28111a302 DB::queryExecute(DB::Context&, bool) [tiflash+152883970]
/usr/local/bin/../include/c++/v1/__memory/unique_ptr.h:689
0x55f2811beca1 DB::MPPTask::runImpl() [tiflash+153558177]
dbms/src/Flash/Mpp/MPPTask.cpp:484
0x55f28017cfb5 auto DB::wrapInvocable<std::__1::function<void ()>>(bool, std::__1::function<void ()>&&)::'lambda'()::operator()() [tiflash+136511413]
/usr/local/bin/../include/c++/v1/__functional/function.h:517
0x55f27a40ba06 DB::DynamicThreadPool::executeTask(std::__1::unique_ptr<DB::IExecutableTask, std::__1::default_delete<DB::IExecutableTask>>&) [tiflash+38529542]
dbms/src/Common/DynamicThreadPool.cpp:124
0x55f27a40b44b DB::DynamicThreadPool::fixedWork(unsigned long) [tiflash+38528075]
dbms/src/Common/DynamicThreadPool.cpp:138
0x55f27a40d06f void* std::__1::__thread_proxy[abi:ue170006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::thread DB::ThreadFactory::newThread<void (DB::DynamicThreadPool::*)(unsigned long), DB::DynamicThreadPool*, unsigned long&>(bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, void (DB::DynamicThreadPool::*&&)(unsigned long), DB::DynamicThreadPool*&&, unsigned long&)::'lambda'(auto&&...), DB::DynamicThreadPool*, unsigned long>>(void*) [tiflash+38535279]
/usr/local/bin/../include/c++/v1/__type_traits/invoke.h:308
0x7f8a16649802 start_thread [libc.so.6+653314]
0x7f8a165e9450 clone3 [libc.so.6+259152]"] [source="MPP<gather_id:1, query_ts:1752089654918470885, local_query_id:24, server_id:46, start_ts:459299790495678468,task_id:2>"] [thread_id=1075]
4. What is your TiFlash version? (Required)
master
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Run the reported vectordbbench command and start by reading DB::RemoteRequest::build in dbms/src/Flash/Coprocessor/RemoteRequest.cpp and TiDB::TableInfo::getColumnInfo in dbms/src/TiDB/Schema/TiDB.cpp. Trace how the remote read supplies the column ID and use the stack trace as the starting point. Done means the VectorSearch query completes without the invalid column ID error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- databases, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100