Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Incomplete
-
10.2.14
-
None
Description
Server (10.2.14 build 22254 from bb-10.2-compatibility tree to be specific) crashes while executing complex enough select over 3 InnoDB tables that uses nested derived tables). Stack trace is:
Thread pointer: 0x7fd7b00a9c18
|
Attempting backtrace. You can use the following information to find out
|
where mysqld died. If you see no messages after this, something went
|
terribly wrong...
|
stack_bottom = 0x7fd7c0f1ad30 thread_stack 0x40000
|
/usr/sbin/mysqld(my_print_stacktrace+0x2e)[0x562f9634cfde]
|
/usr/sbin/mysqld(handle_fatal_signal+0x355)[0x562f95de1cd5]
|
/lib64/libpthread.so.0(+0xf680)[0x7fdc894c6680]
|
/usr/sbin/mysqld(_ZN13st_join_table39get_splitting_cond_for_grouping_derivedEP3THD+0xc9)[0x562f95c53039]
|
/usr/sbin/mysqld(_ZN4JOIN19improve_chosen_planEP3THD+0x93)[0x562f95c71693]
|
/usr/sbin/mysqld(+0x5bd43c)[0x562f95c7343c]
|
/usr/sbin/mysqld(_ZN4JOIN14optimize_innerEv+0x875)[0x562f95c760d5]
|
/usr/sbin/mysqld(_ZN4JOIN8optimizeEv+0x36)[0x562f95c762f6]
|
/usr/sbin/mysqld(_Z22mysql_derived_optimizeP3THDP3LEXP10TABLE_LIST+0xe5)[0x562f95bf5175]
|
/usr/sbin/mysqld(_Z27mysql_handle_single_derivedP3LEXP10TABLE_LISTj+0xe4)[0x562f95bf4ac4]
|
/usr/sbin/mysqld(_ZN4JOIN14optimize_innerEv+0x53c)[0x562f95c75d9c]
|
/usr/sbin/mysqld(_ZN4JOIN8optimizeEv+0x36)[0x562f95c762f6]
|
/usr/sbin/mysqld(_Z12mysql_selectP3THDP10TABLE_LISTjR4ListI4ItemEPS4_jP8st_orderS9_S7_S9_yP13select_resultP18st_select_lex_unitP13st_select_lex+0x94)[0x562f95c778a4]
|
/usr/sbin/mysqld(_Z13handle_selectP3THDP3LEXP13select_resultm+0x15e)[0x562f95c7839e]
|
/usr/sbin/mysqld(+0x4885c1)[0x562f95b3e5c1]
|
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x6910)[0x562f95c256b0]
|
/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_statebb+0x392)[0x562f95c28602]
|
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcjbb+0x29d5)[0x562f95c2c0f5]
|
/usr/sbin/mysqld(_Z10do_commandP3THD+0x149)[0x562f95c2ce39]
|
/usr/sbin/mysqld(_Z24do_handle_one_connectionP7CONNECT+0x1aa)[0x562f95cf3cda]
|
/usr/sbin/mysqld(handle_one_connection+0x3d)[0x562f95cf3dfd]
|
/lib64/libpthread.so.0(+0x7dd5)[0x7fdc894bedd5]
|
/lib64/libc.so.6(clone+0x6d)[0x7fdc87a92b3d]
|
The value of optimizer_switch is:
index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=on,mrr_cost_based=on,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=on,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_grouping_derived=on
|
The query is confidential and can not be shared, but it looks like this:
select ... from (SELECT DISTINCT A.c1, ... , B.* FROM t1 A LEFT JOIN (SELECT ... from t1 A, t2 B WHERE A.col1 = B.col1 AND A.col2 = B.col2 ) AB GROUP BY c, d, e) B ON A.c3 = B.c4 AND A.c5 = B.c5 AND A.c = B.c LEFT JOIN t3 C ON A.c6 = C.c6 AND A.c7 = C.c7 AND (A.c8 in ('0','1') OR ,.. ()) AND C.c9 IN ( .... list of string constants... ) DDD LIMIT 0, 50000;