Details
Description
The debug build of MariaDB (build with `cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd) -DWITH_ASAN=ON -DCMAKE_BUILD_TYPE=Debug`) triggers assertion failure when executing the following statement:
DROP DATABASE IF EXISTS test123; |
CREATE DATABASE IF NOT EXISTS test123; |
USE test123; |
CREATE TABLE v00 (c01 INT, c02 TEXT); |
CREATE INDEX i03 ON v00 (c01); |
INSERT INTO v00 (c01, c02) VALUES (0, 'abc'); |
CREATE TABLE IF NOT EXISTS v00 PARTITION BY LINEAR HASH ( CASE FALSE WHEN TRUE <=> TRUE IN ( SELECT 'string' ) && FALSE != TRUE NOT IN ( SELECT 'string' ) THEN FALSE ELSE FALSE END ) IGNORE AS ( ( ( SELECT * FROM v00 ) LIMIT 1234567890 ) LIMIT 1234567890 ROWS EXAMINED 1234567890 ) LIMIT 1234567890, 1234567890; |
The crash stack is:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x0000ffffb3836b64 in __GI_abort () at abort.c:100
#2 0x0000ffffb3843494 in __assert_fail_base (fmt=0xffffb393e908 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n",
assertion=assertion@entry=0x3aa6960 <str> "builtin_select.first_inner_unit() == __null",
file=file@entry=0x3a951e0 <str> "/home/mariadb/mariadb-server/sql/sql_lex.cc", line=line@entry=10406,
function=function@entry=0x3aa6820 <_PRETTY_FUNCTION_._ZN3LEX18insert_select_hackEP13st_select_lex> "bool LEX::insert_select_hack(SELECT_LEX *)")
at assert.c:94
#3 0x0000ffffb38434fc in _GI__assert_fail (assertion=0x3aa6960 <str> "builtin_select.first_inner_unit() == __null",
file=0x3a951e0 <str> "/home/mariadb/mariadb-server/sql/sql_lex.cc", line=10406,
function=0x3aa6820 <_PRETTY_FUNCTION_._ZN3LEX18insert_select_hackEP13st_select_lex> "bool LEX::insert_select_hack(SELECT_LEX *)") at assert.c:103
#4 0x0000000000dc8d38 in LEX::insert_select_hack (this=<optimized out>, sel=<optimized out>) at /home/mariadb/mariadb-server/sql/sql_lex.cc:10406
#5 0x0000000000dcbd88 in LEX::parsed_insert_select (this=0xffff83cac708, first_select=0xffff81006f78) at /home/mariadb/mariadb-server/sql/sql_lex.cc:10748
#6 0x0000000001907794 in MYSQLparse (thd=<optimized out>) at /home/mariadb/mariadb-server/sql/sql_yacc.yy:4742
#7 0x0000000000e6566c in parse_sql (thd=<optimized out>, parser_state=<optimized out>, creation_ctx=<optimized out>, do_pfs_digest=<optimized out>)
at /home/mariadb/mariadb-server/sql/sql_parse.cc:10328
#8 0x0000000000e21ff4 in mysql_parse (thd=<optimized out>, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>)
at /home/mariadb/mariadb-server/sql/sql_parse.cc:7867
#9 0x0000000000e161dc in dispatch_command (command=<optimized out>, thd=0xffff83ca8288, packet=<optimized out>, packet_length=<optimized out>,
blocking=<optimized out>) at /home/mariadb/mariadb-server/sql/sql_parse.cc:1902
#10 0x0000000000e240d8 in do_command (thd=0xffff83ca8288, blocking=<optimized out>) at /home/mariadb/mariadb-server/sql/sql_parse.cc:1415
#11 0x0000000001483da0 in do_handle_one_connection (connect=<optimized out>, put_in_cache=true) at /home/mariadb/mariadb-server/sql/sql_connect.cc:1415
#12 0x00000000014837b4 in handle_one_connection (arg=0xffffae63dec8) at /home/mariadb/mariadb-server/sql/sql_connect.cc:1327
#13 0x00000000026476a0 in pfs_spawn_thread (arg=0xffffa6809508) at /home/mariadb/mariadb-server/storage/perfschema/pfs.cc:2198
#14 0x0000ffffb3bc5624 in start_thread (arg=0x8a0b38 <asan_thread_start(void*)>) at pthread_create.c:477
#15 0x0000ffffb38e766c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:78
Attachments
Issue Links
- relates to
-
MDEV-35112 Segmentation fault (Signal 11) in INSERT SELECT (change_item_list_context)
-
- Closed
-
Thanks! I repeated on 10.5-11.8 debug, non-debug returns ERROR 1564 (HY000): This partition function is not allowed
--source include/have_partition.inc
Version: '10.5.29-MariaDB-debug-log'
mariadbd: /10.5/src/sql/sql_lex.cc:10117: bool LEX::insert_select_hack(SELECT_LEX*): Assertion `builtin_select.first_inner_unit() == __null' failed.
250325 14:49:39 [ERROR] /10.5/bld/sql/mariadbd got signal 6 ;
Server version: 10.5.29-MariaDB-debug-log source revision: 2469963f052b4dcb11ecfc0fcf5a38881c426df0
/lib/x86_64-linux-gnu/libc.so.6(+0x33fd6)[0x7f54ec76ffd6]
sql/sql_lex.cc:10119(LEX::insert_select_hack(st_select_lex*))[0x55bf6518d20e]
sql/sql_lex.cc:10459(LEX::parsed_insert_select(st_select_lex*))[0x55bf6518ef1a]
sql/sql_yacc.yy:4775(MYSQLparse(THD*))[0x55bf658e779c]
sql/sql_parse.cc:10684(parse_sql(THD*, Parser_state*, Object_creation_ctx*, bool))[0x55bf6520b5d1]
sql/sql_parse.cc:8204(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55bf651fb61f]
sql/sql_parse.cc:1894(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55bf651d02e2]
sql/sql_parse.cc:1375(do_command(THD*))[0x55bf651ccbbc]
sql/sql_connect.cc:1386(do_handle_one_connection(CONNECT*, bool))[0x55bf656437b6]
sql/sql_connect.cc:1300(handle_one_connection)[0x55bf65643310]
perfschema/pfs.cc:2203(pfs_spawn_thread)[0x55bf66303846]
nptl/pthread_create.c:478(start_thread)[0x7f54ecd20609]
Query (0x62b0000852a8): CREATE TABLE t partition BY hash (CASE 0 WHEN 1 IN (SELECT 'a') THEN 0 ELSE 0 END) IGNORE AS (SELECT * FROM v00)