Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[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

Open
divsp opened this issue Jun 6, 2024 · 1 comment
Labels
type: bug Something isn't working

Comments

@divsp
Copy link

divsp commented Jun 6, 2024

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

@divsp divsp added the type: bug Something isn't working label Jun 6, 2024
@github-actions github-actions bot changed the title [Bug]: 在/oceanbase/src/sql/engine/expr/ob_expr_mul.cpp:1494处触发断言失败 [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 Jun 6, 2024
@hnwyllmm
Copy link
Contributor

hnwyllmm commented Jun 11, 2024

没能重现。


Couldn't reproduce.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants