Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
11.1.2, 11.2.1, 10.6, 10.11, 10.5(EOL), 10.9(EOL), 10.10(EOL), 11.0(EOL), 11.1(EOL), 11.2(EOL)
-
None
-
Ubuntu 20.04 x86-64, docker image mariadb:11.1.2
-
Can result in hang or crash
-
Correlated derived table query merges can cause crashes, especially with prepared statements.
-
Q4/2025 Server Maintenance
Description
PoC:
SELECT ( WITH x AS ( WITH RECURSIVE x ( x ) AS ( SELECT 1 UNION SELECT x FROM x ) SELECT * FROM x WHERE x IN ( SELECT x FROM x WHERE ( SELECT 1 GROUP BY x HAVING ( x ) ) ) ) SELECT * FROM x ) ; |
docker log:
mariadbd(my_print_stacktrace+0x32)[0x55e9fce4b7c2]
|
mariadbd(handle_fatal_signal+0x488)[0x55e9fc924cf8]
|
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f4d9baed520]
|
mariadbd(_Z30mark_select_range_as_dependentP3THDP13st_select_lexS2_P5FieldP4ItemP10Item_identb+0x55)[0x55e9fc94c625]
|
mariadbd(_Z20find_field_in_tablesP3THDP10Item_identP10TABLE_LISTS4_P4ListIS3_EPP4Item27find_item_error_report_typebb+0x73c)[0x55e9fc6438ec]
|
mariadbd(_ZN10Item_field10fix_fieldsEP3THDPP4Item+0x293)[0x55e9fc9504f3]
|
mariadbd(_ZN9Item_func10fix_fieldsEP3THDPP4Item+0x8c)[0x55e9fc995fec]
|
mariadbd(_ZN13st_select_lex31pushdown_from_having_into_whereEP3THDP4Item+0x17a)[0x55e9fc69ad7a]
|
mariadbd(_ZN4JOIN14optimize_innerEv+0x992)[0x55e9fc730e52]
|
mariadbd(_ZN4JOIN8optimizeEv+0xda)[0x55e9fc731e2a]
|
mariadbd(_ZN13st_select_lex31optimize_unflattened_subqueriesEb+0x115)[0x55e9fc68ba55]
|
mariadbd(_ZN4JOIN15optimize_stage2Ev+0x12b8)[0x55e9fc72e4c8]
|
mariadbd(_ZN4JOIN14optimize_innerEv+0x1437)[0x55e9fc7318f7]
|
mariadbd(_ZN4JOIN8optimizeEv+0xda)[0x55e9fc731e2a]
|
mariadbd(_ZN13st_select_lex31optimize_unflattened_subqueriesEb+0x115)[0x55e9fc68ba55]
|
mariadbd(_ZN4JOIN28optimize_constant_subqueriesEv+0x35)[0x55e9fc82ad55]
|
mariadbd(_ZN4JOIN14optimize_innerEv+0x503)[0x55e9fc7309c3]
|
mariadbd(_ZN4JOIN8optimizeEv+0xda)[0x55e9fc731e2a]
|
mariadbd(_Z12mysql_selectP3THDP10TABLE_LISTR4ListI4ItemEPS4_jP8st_orderS9_S7_S9_yP13select_resultP18st_select_lex_unitP13st_select_lex+0xd1)[0x55e9fc731f21]
|
mariadbd(_Z13handle_selectP3THDP3LEXP13select_resulty+0x154)[0x55e9fc732774]
|
mariadbd(+0x826f55)[0x55e9fc6a5f55]
|
mariadbd(_Z21mysql_execute_commandP3THDb+0x419e)[0x55e9fc6b4f0e]
|
mariadbd(_Z11mysql_parseP3THDPcjP12Parser_state+0x1e7)[0x55e9fc6b6237]
|
mariadbd(_Z16dispatch_command19enum_server_commandP3THDPcjb+0x14bd)[0x55e9fc6b8a1d]
|
mariadbd(_Z10do_commandP3THDb+0x138)[0x55e9fc6ba818]
|
mariadbd(_Z24do_handle_one_connectionP7CONNECTb+0x3bf)[0x55e9fc7e23af]
|
mariadbd(handle_one_connection+0x5d)[0x55e9fc7e26fd]
|
mariadbd(+0xcd1906)[0x55e9fcb50906]
|
/lib/x86_64-linux-gnu/libc.so.6(+0x94b43)[0x7f4d9bb3fb43]
|
/lib/x86_64-linux-gnu/libc.so.6(clone+0x44)[0x7f4d9bbd0bb4]
|
 |
Trying to get some variables.
|
Some pointers may be invalid and cause the dump to abort.
|
Query (0x7f4d400130d8): SELECT ( WITH x AS ( WITH RECURSIVE x ( x ) AS ( SELECT 1 UNION SELECT x FROM x ) SELECT * FROM x WHERE x IN ( SELECT x FROM x WHERE ( SELECT 1 GROUP BY x HAVING ( x ) ) ) ) SELECT * FROM x )
|
 |
Connection ID (thread ID): 4
|
Status: NOT_KILLED
|
 |
Optimizer switch: 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=off,mrr_cost_based=off,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_materialized=on,condition_pushdown_for_subquery=on,rowid_filter=on,condition_pushdown_from_having=on,not_null_range_scan=off,hash_join_cardinality=on
|
Attachments
Issue Links
- blocks
-
MDEV-32705 Assertion `outer_context || !*from_field || *from_field == not_found_field' failed in Item_field::fix_outer_field
-
- Confirmed
-
-
MDEV-32763 Assertion `fixed' failed at /mariadb-11.3.0/sql/item_strfunc.cc:2391
-
- Confirmed
-
-
MDEV-32767 Global-Buffer-Overflow at /mariadb-11.3.0/sql/item.h:3735
-
- Confirmed
-
-
MDEV-35673 Correlated subquery problems causing wrong results and server crash
-
- In Review
-
- is duplicated by
-
MDEV-32433 Segmentation fault at /mariadb-11.3.0/sql/item.cc:5280
-
- Closed
-
- relates to
-
MDEV-29262 SIGSEGV in mark_select_range_as_dependent on UPDATE or SELECT | UBSAN: runtime error: member access within null pointer of type 'struct Item_subselect' in sql/item.cc (on UPDATE) and in mark_select_range_as_dependent (on SELECT)
-
- Closed
-
-
MDEV-26944 Server crash on selecting some data from information_schema
-
- Stalled
-
-
MDEV-30756 Crash in get_sort_by_table / make_join_statistics / update_depend_map_for_order, various UBSAN pointer issues
-
- Stalled
-
-
MDEV-31937 Server crash on 2nd execution query SELECT from view of prepare statement if query has impossible HAVING
-
- Open
-
-
MDEV-34155 Prepare statement with select from view fails on second execution when view definition has HAVING in a correlated subquery references columns in the outer query
-
- Open
-
-
MDEV-35859 group by removal in Item_singlerow_subselect causing inconsistent results
-
- Stalled
-