[Bug]: 在/oceanbase/src/sql/engine/expr/ob_expr_mul.cpp:1494处触发断言失败 || [Bug]: Failed to trigger assertion at /oceanbase/src/sql/engine/expr/ob_expr_mul.cpp:1494 #1999
Labels
type: bug
Something isn't working
Describe the bug
当输入特定SQL语句后,会触发/oceanbase/src/sql/engine/expr/ob_expr_mul.cpp:1494处的断言失败
Environment
OS Version and CPU Arch(
uname -a
):Linux wx 5.15.0-107-generic ObReqQueue::loop() code issues #117~20.04.1-Ubuntu SMP Tue Apr 30 10:35:57 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
OB Version(
LD_LIBRARY_PATH=../lib:$LD_LIBRARY_PATH ./observer -V
):observer (OceanBase_CE 4.3.2.0)
REVISION: 1-d66ce5ddb37300d9178cc9b9655b679bb567eb6b
BUILD_BRANCH: develop
BUILD_TIME: May 30 2024 18:45:49
BUILD_FLAGS: Debug
BUILD_INFO:
Copyright (c) 2011-present OceanBase Inc.
Fast Reproduce Steps(Required)
Steps to reproduce the behavior:
输入如下SQL语句:
CREATE TABLE t0 ( c0 INT ) ;
INSERT INTO t0 VALUES ( EXISTS ( SELECT 1 ) * 1 );
Expected behavior
正常插入
Actual Behavior
触发断言失败
GDB Info:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007fe2bd218859 in __GI_abort () at abort.c:79
#2 0x00007fe2bd218729 in __assert_fail_base (fmt=0x7fe2bb222a08 "%s%s%s:%u:%s%s?? '%s' ???\n%n", assertion=0x5634637fd5b0 "v",
file=0x563463786ef4 "/home/wx/oceanbase/src/sql/engine/expr/ob_expr_mul.cpp", line=1494, function=) at assert.c:92
#3 0x00007fe2bd229fd6 in __GI___assert_fail (assertion=0x5634637fd5b0 "v",
file=0x563463786ef4 "/home/wx/oceanbase/src/sql/engine/expr/ob_expr_mul.cpp", line=1494,
function=0x5634647098d7 "virtual int oceanbase::sql::ObExprMul::cg_expr(oceanbase::sql::ObExprCGCtx &, const oceanbase::sql::ObRawExpr &, oceanbase::sql::ObExpr &) const") at assert.c:101
#4 0x0000563473dd5a38 in oceanbase::sql::ObExprMul::cg_expr (this=, op_cg_ctx=..., raw_expr=..., rt_expr=...)
at ./src/sql/engine/expr/ob_expr_mul.cpp:1494
#5 0x000056346ef44d0e in oceanbase::sql::ObStaticEngineExprCG::cg_expr_by_operator (this=this@entry=0x7fe2879c3ec0, raw_exprs=...,
total_ctx_cnt=@0x7fe2330e4878: 0) at ./src/sql/code_generator/ob_static_engine_expr_cg.cpp:516
#6 0x000056346ef416d1 in oceanbase::sql::ObStaticEngineExprCG::cg_exprs (this=this@entry=0x7fe2879c3ec0, raw_exprs=..., expr_info=...)
at ./src/sql/code_generator/ob_static_engine_expr_cg.cpp:234
#7 0x000056346ee28196 in oceanbase::sql::ObStaticEngineExprCG::generate (this=this@entry=0x7fe2879c3ec0, all_raw_exprs=..., expr_info=...)
at ./src/sql/code_generator/ob_static_engine_expr_cg.cpp:75
#8 0x000056346ee27651 in oceanbase::sql::ObCodeGenerator::generate_exprs (this=this@entry=0x7fe2879c4040, log_plan=..., phy_plan=...,
cur_cluster_version=) at ./src/sql/code_generator/ob_code_generator.cpp:68
#9 0x000056346ee26a84 in oceanbase::sql::ObCodeGenerator::generate (this=0x7fe2879c4040, log_plan=..., phy_plan=...)
at ./src/sql/code_generator/ob_code_generator.cpp:38
#10 0x00005634739072f1 in oceanbase::sql::ObSql::code_generate (sql_ctx=..., result=..., stmt=, stmt_need_privs=...,
stmt_ora_need_privs=..., audit_units=..., logical_plan=0x7fe2879c3310, phy_plan=@0x7fe2879c5f90: 0x7fe2330e4050)
at ./src/sql/ob_sql.cpp:3741
#11 0x00005634738ff935 in oceanbase::sql::ObSql::generate_plan (
this=this@entry=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, parse_result=...,
pc_ctx=pc_ctx@entry=0x7fe2879c6460, sql_ctx=..., result=..., mode=, mode@entry=oceanbase::sql::PC_TEXT_MODE, basic_stmt=
0x7fe21740a760, stmt_need_privs=..., stmt_ora_need_privs=...) at ./src/sql/ob_sql.cpp:3333
#12 0x00005634738f83f2 in oceanbase::sql::ObSql::generate_physical_plan (
this=this@entry=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, parse_result=...,
pc_ctx=pc_ctx@entry=0x7fe2879c6460, sql_ctx=..., result=..., is_begin_commit_stmt=false, mode=oceanbase::sql::PC_TEXT_MODE,
outline_parse_result=0x7fe2879c6108) at ./src/sql/ob_sql.cpp:3123
#13 0x00005634738ed31a in oceanbase::sql::ObSql::handle_physical_plan (
this=this@entry=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, trimed_stmt=..., context=..., result=...,
pc_ctx=..., get_plan_err=) at ./src/sql/ob_sql.cpp:4938
#14 0x00005634738d3c4c in oceanbase::sql::ObSql::handle_text_query (this=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, stmt=..., context=..., result=...) at ./src/sql/ob_sql.cpp:2683
#15 oceanbase::sql::ObSql::stmt_query (this=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, stmt=..., context=..., result=...) at ./src/sql/ob_sql.cpp:226
#16 0x000056346e2cd0ca in oceanbase::observer::ObMPQuery::do_process (this=0x7fe2879d8280, session=..., has_more_result=false, force_sync_resp=false, async_resp_used=, need_disconnect=) at ./src/observer/mysql/obmp_query.cpp:754
#17 oceanbase::observer::ObMPQuery::process_single_stmt (this=, this@entry=0x7fe2879d8280, multi_stmt_item=..., conn=, session=..., has_more_result=false, force_sync_resp=false, async_resp_used=@0x7fe2879cbf71: false, need_disconnect=@0x7fe2879cbf73: true) at ./src/observer/mysql/obmp_query.cpp:526
#18 0x000056346e2c93e6 in oceanbase::observer::ObMPQuery::process (this=) at ./src/observer/mysql/obmp_query.cpp:328
#19 0x000056348020d75a in oceanbase::rpc::frame::ObSqlProcessor::run (this=0x7fe2879d8280) at ./deps/oblib/src/rpc/frame/ob_sql_processor.cpp:41
#20 0x000056346df3bd8f in oceanbase::omt::ObWorkerProcessor::process_one (this=this@entry=0x7fe28d3cb928, req=...) at ./src/observer/omt/ob_worker_processor.cpp:88
#21 0x000056346df3ae66 in oceanbase::omt::ObWorkerProcessor::process (this=, this@entry=0x7fe28d3cb928, req=...) at ./src/observer/omt/ob_worker_processor.cpp:156
#22 0x000056346df39e6d in oceanbase::omt::ObThWorker::process_request (this=this@entry=0x7fe28d3cb860, req=...) at ./src/observer/omt/ob_th_worker.cpp:245
#23 0x000056346df392fe in oceanbase::omt::ObThWorker::worker (this=0x7fe28d3cb860, tenant_id=@0x7fe2879ccbd8: 1, req_recv_timestamp=@0x7fe2879ccbe0: 1717657073432094, worker_level=@0x7fe2879ccbec: 0) at ./src/observer/omt/ob_th_worker.cpp:394
#24 0x000056346df3a424 in non-virtual thunk to oceanbase::omt::ObThWorker::run(long) () at ./src/observer/omt/ob_th_worker.cpp:431
#25 0x000056347f06dd2b in oceanbase::lib::Thread::run (this=0x7fe28d3cbb90) at ./deps/oblib/src/lib/thread/thread.cpp:174
#26 oceanbase::lib::Thread::__th_start (arg=) at ./deps/oblib/src/lib/thread/thread.cpp:332
#27 0x00007fe2bd3f0609 in start_thread (arg=) at pthread_create.c:477
#28 0x00007fe2bd315353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Describe the bug
When a specific SQL statement is entered, the assertion failure at /oceanbase/src/sql/engine/expr/ob_expr_mul.cpp:1494 will be triggered.
Environment
OS Version and CPU Arch(
uname -a
):Linux wx 5.15.0-107-generic ObReqQueue::loop() code issues #117~20.04.1-Ubuntu SMP Tue Apr 30 10:35:57 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
OB Version(
LD_LIBRARY_PATH=../lib:$LD_LIBRARY_PATH ./observer -V
):observer (OceanBase_CE 4.3.2.0)
REVISION: 1-d66ce5ddb37300d9178cc9b9655b679bb567eb6b
BUILD_BRANCH: develop
BUILD_TIME: May 30 2024 18:45:49
BUILD_FLAGS: Debug
BUILD_INFO:
Copyright (c) 2011-present OceanBase Inc.
Fast Reproduce Steps(Required)
Steps to reproduce the behavior:
Enter the following SQL statement:
CREATE TABLE t0 (c0 INT);
INSERT INTO t0 VALUES ( EXISTS ( SELECT 1 ) * 1 );
Expected behavior
Insert normally
Actual Behavior
Trigger assertion failed
GDB Info:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007fe2bd218859 in __GI_abort () at abort.c:79
#2 0x00007fe2bd218729 in __assert_fail_base (fmt=0x7fe2bb222a08 "%s%s%s:%u:%s%s?? '%s' ???\n%n", assertion=0x5634637fd5b0 "v",
file=0x563463786ef4 "/home/wx/oceanbase/src/sql/engine/expr/ob_expr_mul.cpp", line=1494, function=) at assert.c:92
#3 0x00007fe2bd229fd6 in __GI___assert_fail (assertion=0x5634637fd5b0 "v",
file=0x563463786ef4 "/home/wx/oceanbase/src/sql/engine/expr/ob_expr_mul.cpp", line=1494,
function=0x5634647098d7 "virtual int oceanbase::sql::ObExprMul::cg_expr(oceanbase::sql::ObExprCGCtx &, const oceanbase::sql::ObRawExpr &, oceanbase::sql::ObExpr &) const") at assert .c:101
#4 0x0000563473dd5a38 in oceanbase::sql::ObExprMul::cg_expr (this=, op_cg_ctx=..., raw_expr=..., rt_expr=...)
at ./src/sql/engine/expr/ob_expr_mul.cpp:1494
#5 0x000056346ef44d0e in oceanbase::sql::ObStaticEngineExprCG::cg_expr_by_operator (this=this@entry=0x7fe2879c3ec0, raw_exprs=...,
total_ctx_cnt=@0x7fe2330e4878: 0) at ./src/sql/code_generator/ob_static_engine_expr_cg.cpp:516
#6 0x000056346ef416d1 in oceanbase::sql::ObStaticEngineExprCG::cg_exprs (this=this@entry=0x7fe2879c3ec0, raw_exprs=..., expr_info=...)
at ./src/sql/code_generator/ob_static_engine_expr_cg.cpp:234
#7 0x000056346ee28196 in oceanbase::sql::ObStaticEngineExprCG::generate (this=this@entry=0x7fe2879c3ec0, all_raw_exprs=..., expr_info=...)
at ./src/sql/code_generator/ob_static_engine_expr_cg.cpp:75
#8 0x000056346ee27651 in oceanbase::sql::ObCodeGenerator::generate_exprs (this=this@entry=0x7fe2879c4040, log_plan=..., phy_plan=...,
cur_cluster_version=) at ./src/sql/code_generator/ob_code_generator.cpp:68
#9 0x000056346ee26a84 in oceanbase::sql::ObCodeGenerator::generate (this=0x7fe2879c4040, log_plan=..., phy_plan=...)
at ./src/sql/code_generator/ob_code_generator.cpp:38
#10 0x00005634739072f1 in oceanbase::sql::ObSql::code_generate (sql_ctx=..., result=..., stmt=, stmt_need_privs=...,
stmt_ora_need_privs=..., audit_units=..., logical_plan=0x7fe2879c3310, phy_plan=@0x7fe2879c5f90: 0x7fe2330e4050)
at ./src/sql/ob_sql.cpp:3741
#11 0x00005634738ff935 in oceanbase::sql::ObSql::generate_plan (
this=this@entry=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, parse_result=...,
pc_ctx=pc_ctx@entry=0x7fe2879c6460, sql_ctx=..., result=..., mode=, mode@entry=oceanbase::sql::PC_TEXT_MODE, basic_stmt=
0x7fe21740a760, stmt_need_privs=..., stmt_ora_need_privs=...) at ./src/sql/ob_sql.cpp:3333
#12 0x00005634738f83f2 in oceanbase::sql::ObSql::generate_physical_plan (
this=this@entry=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, parse_result=...,
pc_ctx=pc_ctx@entry=0x7fe2879c6460, sql_ctx=..., result=..., is_begin_commit_stmt=false, mode=oceanbase::sql::PC_TEXT_MODE,
outline_parse_result=0x7fe2879c6108) at ./src/sql/ob_sql.cpp:3123
#13 0x00005634738ed31a in oceanbase::sql::ObSql::handle_physical_plan (
this=this@entry=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, trimed_stmt=..., context=..., result=...,
pc_ctx=..., get_plan_err=) at ./src/sql/ob_sql.cpp:4938
#14 0x00005634738d3c4c in oceanbase::sql::ObSql::handle_text_query (this=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, stmt=..., context=..., result=...) at ./src/sql/ob_sql.cpp:2683
#15 oceanbase::sql::ObSql::stmt_query (this=0x563483175e80 oceanbase::observer::ObServer::get_instance()::THE_ONE+1152576, stmt=..., context=..., result= ...) at ./src/sql/ob_sql.cpp:226
#16 0x000056346e2cd0ca in oceanbase::observer::ObMPQuery::do_process (this=0x7fe2879d8280, session=..., has_more_result=false, force_sync_resp=false, async_resp_used=, need_disconnect=) at ./ src/observer/mysql/obmp_query.cpp:754
#17 oceanbase::observer::ObMPQuery::process_single_stmt (this=, this@entry=0x7fe2879d8280, multi_stmt_item=..., conn=, session=..., has_more_result=false, force_sync_resp =false, async_resp_used=@0x7fe2879cbf71: false, need_disconnect=@0x7fe2879cbf73: true) at ./src/observer/mysql/obmp_query.cpp:526
#18 0x000056346e2c93e6 in oceanbase::observer::ObMPQuery::process (this=) at ./src/observer/mysql/obmp_query.cpp:328
#19 0x000056348020d75a in oceanbase::rpc::frame::ObSqlProcessor::run (this=0x7fe2879d8280) at ./deps/oblib/src/rpc/frame/ob_sql_processor.cpp:41
#20 0x000056346df3bd8f in oceanbase::omt::ObWorkerProcessor::process_one (this=this@entry=0x7fe28d3cb928, req=...) at ./src/observer/omt/ob_worker_processor.cpp:88
#21 0x000056346df3ae66 in oceanbase::omt::ObWorkerProcessor::process (this=, this@entry=0x7fe28d3cb928, req=...) at ./src/observer/omt/ob_worker_processor.cpp:156
#22 0x000056346df39e6d in oceanbase::omt::ObThWorker::process_request (this=this@entry=0x7fe28d3cb860, req=...) at ./src/observer/omt/ob_th_worker.cpp:245
#23 0x000056346df392fe in oceanbase::omt::ObThWorker::worker (this=0x7fe28d3cb860, tenant_id=@0x7fe2879ccbd8: 1, req_recv_timestamp=@0x7fe2879ccbe0: 1717657073432094, worker_level= @0x7fe2879ccbec: 0) at ./src/observer/omt/ob_th_worker .cpp:394
#24 0x000056346df3a424 in non-virtual thunk to oceanbase::omt::ObThWorker::run(long) () at ./src/observer/omt/ob_th_worker.cpp:431
#25 0x000056347f06dd2b in oceanbase::lib::Thread::run (this=0x7fe28d3cbb90) at ./deps/oblib/src/lib/thread/thread.cpp:174
#26 oceanbase::lib::Thread::__th_start (arg=) at ./deps/oblib/src/lib/thread/thread.cpp:332
#27 0x00007fe2bd3f0609 in start_thread (arg=) at pthread_create.c:477
#28 0x00007fe2bd315353 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
The text was updated successfully, but these errors were encountered: