Closed JinheLin closed 1 week ago
[2024/07/03 22:13:05.170 +08:00] [ERROR] [MPPTask.cpp:644] ["task running meets error: Code: 0, e.displayText() = DB::TiFlashException: Column index out of bound: 4, should in [0,3): (while creating read sources from storage `db_2`.`t_534`, keyspace_id=4294967295 table_id=534), e.what() = DB::TiFlashException, Stack trace:
0x55d805e05111\tDB::TiFlashException::TiFlashException<long&, unsigned long>(DB::TiFlashError const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, long&, unsigned long&&) [tiflash+122278161]
\tdbms/src/Common/StackTrace.cpp:23
0x55d805e04f1b\tDB::DM::cop::getColumnDefineForColumnExpr(tipb::Expr const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine>> const&) [tiflash+122277659]
\tdbms/src/Storages/DeltaMerge/FilterParser/FilterParser.cpp:88
0x55d805e060c9\tDB::DM::cop::parseTiCompareExpr(tipb::Expr const&, DB::DM::FilterParser::RSFilterType, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine>> const&, std::__1::function<DB::DM::Attr (long)> const&, DB::TimezoneInfo const&) [tiflash+122282185]
\tdbms/src/Storages/DeltaMerge/FilterParser/FilterParser.cpp:166
0x55d805e055f0\tDB::DM::cop::parseTiExpr(tipb::Expr const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine>> const&, std::__1::function<DB::DM::Attr (long)> const&, DB::TimezoneInfo const&, std::__1::shared_ptr<DB::Logger> const&) [tiflash+122279408]
\tdbms/src/Storages/DeltaMerge/FilterParser/FilterParser.cpp:310
0x55d805e07ac3\tDB::DM::FilterParser::parseDAGQuery(DB::DAGQueryInfo const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine>> const&, std::__1::function<DB::DM::Attr (long)>&&, std::__1::shared_ptr<DB::Logger> const&) [tiflash+122288835]
\tdbms/src/Storages/DeltaMerge/FilterParser/FilterParser.cpp:374
0x55d805dfb96e\tDB::DM::RSOperator::build(std::__1::unique_ptr<DB::DAGQueryInfo, std::__1::default_delete<DB::DAGQueryInfo>> const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine>> const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine>> const&, bool, std::__1::shared_ptr<DB::Logger> const&) [tiflash+122239342]
\tdbms/src/Storages/DeltaMerge/Filter/RSOperator.cpp:79
0x55d80699f74e\tDB::DM::PushDownFilter::build(DB::SelectQueryInfo const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine>> const&, std::__1::vector<DB::DM::ColumnDefine, std::__1::allocator<DB::DM::ColumnDefine>> const&, DB::Context const&, std::__1::shared_ptr<DB::Logger> const&) [tiflash+134444878]
\tdbms/src/Storages/DeltaMerge/Filter/PushDownFilter.cpp:166
0x55d806984dce\tDB::StorageDeltaMerge::read(DB::PipelineExecutorContext&, DB::PipelineExecGroupBuilder&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>> const&, DB::SelectQueryInfo const&, DB::Context const&, unsigned long, unsigned int) [tiflash+134335950]
\tdbms/src/Storages/StorageDeltaMerge.cpp:881
0x55d8073c4144\tDB::DAGStorageInterpreter::executeImpl(DB::PipelineExecutorContext&, DB::PipelineExecGroupBuilder&) [tiflash+145080644]
\tdbms/src/Flash/Coprocessor/DAGStorageInterpreter.cpp:1124
0x55d8073b981c\tDB::PhysicalTableScan::buildPipeline(DB::PipelineBuilder&, DB::Context&, DB::PipelineExecutorContext&) [tiflash+145037340]
\tdbms/src/Flash/Coprocessor/DAGStorageInterpreter.cpp:327
0x55d80725f7f2\tDB::PhysicalPlanNode::buildPipeline(DB::PipelineBuilder&, DB::Context&, DB::PipelineExecutorContext&) [tiflash+143620082]
\tdbms/src/Flash/Planner/PhysicalPlanNode.cpp:142
0x55d80725f7f2\tDB::PhysicalPlanNode::buildPipeline(DB::PipelineBuilder&, DB::Context&, DB::PipelineExecutorContext&) [tiflash+143620082]
\tdbms/src/Flash/Planner/PhysicalPlanNode.cpp:142
0x55d80724f565\tDB::PhysicalPlan::toPipeline(DB::PipelineExecutorContext&, DB::Context&) [tiflash+143553893]
\tdbms/src/Flash/Planner/PhysicalPlan.cpp:326
0x55d8071e88ab\tDB::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+143132843]
\tdbms/src/Flash/Executor/PipelineExecutor.cpp:45
0x55d8070ec0bf\tDB::queryExecute(DB::Context&, bool) [tiflash+142098623]
\t/usr/local/bin/../include/c++/v1/__memory/unique_ptr.h:689
0x55d80718b30c\tDB::MPPTask::runImpl() [tiflash+142750476]
\tdbms/src/Flash/Mpp/MPPTask.cpp:482
0x55d80623b845\tauto DB::wrapInvocable<std::__1::function<void ()>>(bool, std::__1::function<void ()>&&)::'lambda'()::operator()() [tiflash+126695493]
\t/usr/local/bin/../include/c++/v1/__functional/function.h:517
0x55d800968c86\tDB::DynamicThreadPool::executeTask(std::__1::unique_ptr<DB::IExecutableTask, std::__1::default_delete<DB::IExecutableTask>>&) [tiflash+33557638]
\tdbms/src/Common/DynamicThreadPool.cpp:124
0x55d8009686cb\tDB::DynamicThreadPool::fixedWork(unsigned long) [tiflash+33556171]
\tdbms/src/Common/DynamicThreadPool.cpp:138
0x55d80096a2ef\tvoid* 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+33563375]
\t/usr/local/bin/../include/c++/v1/__type_traits/invoke.h:308
0x7fd200b66802\tstart_thread [libc.so.6+653314]
0x7fd200b06450\tclone3 [libc.so.6+259152]"] [source="MPP<gather_id:1, query_ts:1720015981735969134, local_query_id:15, server_id:1028, start_ts:450891869515677697,task_id:1>"] [thread_id=768]
ColumnDefine getColumnDefineForColumnExpr(const tipb::Expr & expr, const ColumnDefines & columns_to_read)
{
assert(isColumnExpr(expr));
auto column_index = decodeDAGInt64(expr.val());
if (column_index < 0 || column_index >= static_cast<Int64>(columns_to_read.size()))
{
throw TiFlashException(
Errors::Coprocessor::BadRequest,
"Column index out of bound: {}, should in [0,{})",
column_index,
columns_to_read.size());
}
return columns_to_read[column_index];
}
drop table if exists test.t;
create table if not exists test.t(a int);
alter table test.t add column b int as (a+1) virtual;
alter table test.t add column c int;
alter table test.t add column d int as (c+1) virtual;
alter table test.t add column e int;
insert into test.t(a, c, e) values(1, 10, 100), (2, 20, 200), (3, 30, 300), (4, 40, 400), (5, 50, 500), (6, 60, 600), (7, 70, 700), (8, 80, 800), (9, 90, 900);
alter table test.t set tiflash replica 1;
mysql> set tidb_isolation_read_engines='tiflash';
Query OK, 0 rows affected (0.00 sec)
mysql> select a, b, c, d, e from test.t where c = 10;
Empty set (0.10 sec)
mysql> set tidb_isolation_read_engines='tikv';
Query OK, 0 rows affected (0.00 sec)
mysql> select a, b, c, d, e from test.t where c = 10;
+------+------+------+------+------+
| a | b | c | d | e |
+------+------+------+------+------+
| 1 | 2 | 10 | 11 | 100 |
+------+------+------+------+------+
1 row in set (0.00 sec)
Bug Report
Please answer these questions before submitting your issue. Thanks!
1. Minimal reproduce step (Required)
2. What did you expect to see? (Required)
3. What did you see instead (Required)
4. What is your TiFlash version? (Required)