Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-36369

MariaDB assertion failure: builtin_select.first_inner_unit() == NULL

Details

    • Bug
    • Status: Confirmed (View Workflow)
    • Major
    • Resolution: Unresolved
    • 11.7.2, 10.5, 10.6, 10.11, 11.4, 11.8
    • 10.11, 11.4, 11.8
    • Parser
    • Ubuntu 24.04 ARM64 VM.
      MariaDB build with: -DWITH_ASAN=ON -DCMAKE_BUILD_TYPE=Debug

    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

          Activity

            alice Alice Sherepa added a comment -

            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  
             
            CREATE TABLE t partition BY hash (CASE 0 WHEN 1 IN (SELECT 'a') THEN 0 ELSE 0 END) IGNORE AS (SELECT * FROM v00);
            

            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)
            

            alice Alice Sherepa added a comment - 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   CREATE TABLE t partition BY hash ( CASE 0 WHEN 1 IN ( SELECT 'a' ) THEN 0 ELSE 0 END ) IGNORE AS ( SELECT * FROM v00); 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)

            People

              sanja Oleksandr Byelkin
              luy70 Yu Liang
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.