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

Assertion `table->cols[j].len < req_schema->columns[i].len' failed in dict_table_schema_check

Details

    Description

      May or may not be related to MDEV-22733 (same frames). May or may not be significant issue, though it is a 10.6 regression. Feel free to lower prio if not deemed important.

      SET SESSION old_mode='';
      ALTER TABLE mysql.innodb_index_stats MODIFY stat_description VARCHAR(1024) COLLATE utf8_bin;
      CREATE TABLE t (a INT) ENGINE=InnoDB;
      

      Leads to:

      10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug)

      mysqld: /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408: dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t): Assertion `table->cols[j].len < req_schema->columns[i].len' failed.
      

      10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug)

      Core was generated by `/test/MD120621-mariadb-10.6.2-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      [Current thread is 1 (Thread 0x1508e00e9700 (LWP 2672327))]
      (gdb) bt
      #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #1  0x00001508e134c859 in __GI_abort () at abort.c:79
      #2  0x00001508e134c729 in __assert_fail_base (fmt=0x1508e14e2588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55992b0fe948 "table->cols[j].len < req_schema->columns[i].len", file=0x55992b0fe778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=408, function=<optimized out>) at assert.c:92
      #3  0x00001508e135df36 in __GI___assert_fail (assertion=assertion@entry=0x55992b0fe948 "table->cols[j].len < req_schema->columns[i].len", file=file@entry=0x55992b0fe778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=line@entry=408, function=function@entry=0x55992b0fe878 "dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t)") at assert.c:101
      #4  0x000055992ab9e85f in dict_table_schema_check (req_schema=req_schema@entry=0x55992b6f8e80 <index_stats_schema>, errstr=errstr@entry=0x1508e00e5600 "@V\016\340\b\025", errstr_sz=errstr_sz@entry=512) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408
      #5  0x000055992aba1c34 in dict_stats_persistent_storage_check (caller_has_dict_sys_mutex=caller_has_dict_sys_mutex@entry=false) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:503
      #6  0x000055992aba9477 in dict_stats_update (table=table@entry=0x1508a800d778, stats_upd_option=stats_upd_option@entry=DICT_STATS_EMPTY_TABLE) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:3506
      #7  0x000055992a858ddd in create_table_info_t::create_table_update_dict (this=this@entry=0x1508e00e5c30) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:12896
      #8  0x000055992a88102c in ha_innobase::create (this=<optimized out>, name=<optimized out>, form=<optimized out>, create_info=<optimized out>, file_per_table=<optimized out>, trx=0x1508e01a3290, trx@entry=0x0) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:13035
      #9  0x000055992a877079 in ha_innobase::create (this=<optimized out>, name=<optimized out>, form=<optimized out>, create_info=<optimized out>) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:13056
      #10 0x000055992a477217 in handler::ha_create (this=0x15089003e070, name=0x1508e00e7670 "./test/t", form=form@entry=0x1508e00e6200, info_arg=info_arg@entry=0x1508e00e7ba0) at /test/10.6_dbg/sql/handler.cc:5391
      #11 0x000055992a477eb1 in ha_create_table (thd=thd@entry=0x150890000db8, path=0x1508e00e7670 "./test/t", db=0x150890014778 "test", table_name=0x150890014060 "t", create_info=create_info@entry=0x1508e00e7ba0, frm=frm@entry=0x1508e00e7660, skip_frm_file=false) at /test/10.6_dbg/sql/handler.cc:5856
      #12 0x000055992a26b1c7 in create_table_impl (thd=thd@entry=0x150890000db8, ddl_log_state_create=ddl_log_state_create@entry=0x1508e00e7900, ddl_log_state_rm=<optimized out>, ddl_log_state_rm@entry=0x1508e00e7920, orig_db=@0x1508900140b0: {str = 0x150890014778 "test", length = 4}, orig_table_name=@0x1508900140c0: {str = 0x150890014060 "t", length = 1}, db=@0x1508900140b0: {str = 0x150890014778 "test", length = 4}, table_name=@0x1508900140c0: {str = 0x150890014060 "t", length = 1}, path=@0x1508e00e7650: {str = 0x1508e00e7670 "./test/t", length = 8}, options=<optimized out>, create_info=0x1508e00e7ba0, alter_info=0x1508e00e7ab0, create_table_mode=0, is_trans=0x1508e00e78ff, key_info=0x1508e00e7648, key_count=0x1508e00e7644, frm=0x1508e00e7660) at /test/10.6_dbg/sql/sql_table.cc:4449
      #13 0x000055992a26b794 in mysql_create_table_no_lock (thd=thd@entry=0x150890000db8, ddl_log_state_create=ddl_log_state_create@entry=0x1508e00e7900, ddl_log_state_rm=ddl_log_state_rm@entry=0x1508e00e7920, db=db@entry=0x1508900140b0, table_name=table_name@entry=0x1508900140c0, create_info=create_info@entry=0x1508e00e7ba0, alter_info=0x1508e00e7ab0, is_trans=0x1508e00e78ff, create_table_mode=0, table_list=0x150890014098) at /test/10.6_dbg/sql/sql_table.cc:4548
      #14 0x000055992a26bbb7 in mysql_create_table (thd=thd@entry=0x150890000db8, create_table=create_table@entry=0x150890014098, create_info=create_info@entry=0x1508e00e7ba0, alter_info=alter_info@entry=0x1508e00e7ab0) at /test/10.6_dbg/sql/sql_table.cc:4660
      #15 0x000055992a26da61 in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x150890000db8) at /test/10.6_dbg/sql/sql_table.cc:11770
      #16 0x000055992a19bfe1 in mysql_execute_command (thd=thd@entry=0x150890000db8) at /test/10.6_dbg/sql/sql_parse.cc:5983
      #17 0x000055992a182890 in mysql_parse (thd=thd@entry=0x150890000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1508e00e8400) at /test/10.6_dbg/sql/sql_parse.cc:8016
      #18 0x000055992a1913fa in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x150890000db8, packet=packet@entry=0x15089000b769 "CREATE TABLE t (a INT)", packet_length=packet_length@entry=22, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1340
      #19 0x000055992a1947da in do_command (thd=0x150890000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1406
      #20 0x000055992a2f8c8e in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55992c877418, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410
      #21 0x000055992a2f9293 in handle_one_connection (arg=arg@entry=0x55992c877418) at /test/10.6_dbg/sql/sql_connect.cc:1312
      #22 0x000055992a7a7166 in pfs_spawn_thread (arg=0x55992c75fab8) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201
      #23 0x00001508e185a609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #24 0x00001508e1449293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Bug confirmed present in:
      MariaDB: 10.6.2 (dbg)

      Bug (or feature/syntax) confirmed not present in:
      MariaDB: 10.2.38 (dbg), 10.2.38 (opt), 10.3.29 (dbg), 10.3.29 (opt), 10.4.19 (dbg), 10.4.19 (opt), 10.5.10 (dbg), 10.5.10 (opt), 10.6.2 (opt)
      MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.34 (dbg), 5.7.34 (opt), 8.0.24 (dbg), 8.0.24 (opt)

      Attachments

        Activity

          Roel Roel Van de Paar added a comment - - edited

          Different outcome with slightly modified test:

          SET SESSION old_mode='';
          CREATE TABLE t (a INT) ENGINE=InnoDB;
          ALTER TABLE mysql.innodb_index_stats MODIFY stat_description VARCHAR(1024) COLLATE utf8_bin;
          DROP TABLE t;
          

          Leads to:

          10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug)

          mysqld: /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408: dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t): Assertion `table->cols[j].len < req_schema->columns[i].len' failed.
          

          10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug)

          Core was generated by `/test/MD120621-mariadb-10.6.2-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'.
          Program terminated with signal SIGABRT, Aborted.
          #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
          [Current thread is 1 (Thread 0x148cd4103700 (LWP 2945455))]
          (gdb) bt
          #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
          #1  0x0000148cd6cc1859 in __GI_abort () at abort.c:79
          #2  0x0000148cd6cc1729 in __assert_fail_base (fmt=0x148cd6e57588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x557fcbd53948 "table->cols[j].len < req_schema->columns[i].len", file=0x557fcbd53778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=408, function=<optimized out>) at assert.c:92
          #3  0x0000148cd6cd2f36 in __GI___assert_fail (assertion=assertion@entry=0x557fcbd53948 "table->cols[j].len < req_schema->columns[i].len", file=file@entry=0x557fcbd53778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=line@entry=408, function=function@entry=0x557fcbd53878 "dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t)") at assert.c:101
          #4  0x0000557fcb7f385f in dict_table_schema_check (req_schema=req_schema@entry=0x557fcc34de80 <index_stats_schema>, errstr=errstr@entry=0x148cd40ffea0 "\300", errstr_sz=errstr_sz@entry=512) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408
          #5  0x0000557fcb7f6c34 in dict_stats_persistent_storage_check (caller_has_dict_sys_mutex=caller_has_dict_sys_mutex@entry=true) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:503
          #6  0x0000557fcb7f6cfd in dict_stats_exec_sql (pinfo=pinfo@entry=0x148c88024238, sql=sql@entry=0x557fcbd53b58 "PROCEDURE DELETE_FROM_TABLE_STATS () IS\nBEGIN\nDELETE FROM \"mysql/innodb_table_stats\" WHERE\ndatabase_name = :database_name AND\ntable_name = :table_name;\nEND;\n", trx=trx@entry=0x148cd43be290) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:536
          #7  0x0000557fcb7f6ebb in dict_stats_delete_from_table_stats (database_name=database_name@entry=0x148cd4100130 "test", table_name=table_name@entry=0x148cd4100200 "t", trx=trx@entry=0x148cd43be290) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:3653
          #8  0x0000557fcb8028c3 in trx_t::drop_table_statistics (this=this@entry=0x148cd43be290, name=<optimized out>) at /test/10.6_dbg/storage/innobase/dict/drop.cc:130
          #9  0x0000557fcb4c910b in ha_innobase::delete_table (this=<optimized out>, name=<optimized out>) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:13376
          #10 0x0000557fcb0c48e2 in hton_drop_table (hton=<optimized out>, path=<optimized out>) at /test/10.6_dbg/sql/handler.cc:576
          #11 0x0000557fcb0ce1b2 in ha_delete_table (thd=thd@entry=0x148c88000db8, hton=hton@entry=0x557fcd1d3538, path=path@entry=0x148cd41018f0 "./test/t", db=db@entry=0x148cd41016c0, alias=alias@entry=0x148cd41016d0, generate_warning=generate_warning@entry=true) at /test/10.6_dbg/sql/handler.cc:3072
          #12 0x0000557fcaeae682 in mysql_rm_table_no_locks (thd=thd@entry=0x148c88000db8, tables=tables@entry=0x148c88014060, current_db=current_db@entry=0x148c88000e50, ddl_log_state=0x148cd41016f0, ddl_log_state@entry=0x0, if_exists=if_exists@entry=false, drop_temporary=drop_temporary@entry=false, drop_view=false, drop_sequence=false, dont_log_query=false, dont_free_locks=false) at /test/10.6_dbg/sql/sql_table.cc:1471
          #13 0x0000557fcaeb0779 in mysql_rm_table (thd=thd@entry=0x148c88000db8, tables=tables@entry=0x148c88014060, if_exists=<optimized out>, drop_temporary=<optimized out>, drop_sequence=<optimized out>, dont_log_query=dont_log_query@entry=false) at /test/10.6_dbg/sql/sql_table.cc:1044
          #14 0x0000557fcadee0ad in mysql_execute_command (thd=thd@entry=0x148c88000db8) at /test/10.6_dbg/sql/structs.h:567
          #15 0x0000557fcadd7890 in mysql_parse (thd=thd@entry=0x148c88000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x148cd4102400) at /test/10.6_dbg/sql/sql_parse.cc:8016
          #16 0x0000557fcade63fa in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x148c88000db8, packet=packet@entry=0x148c8800b769 "DROP TABLE t", packet_length=packet_length@entry=12, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1340
          #17 0x0000557fcade97da in do_command (thd=0x148c88000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1406
          #18 0x0000557fcaf4dc8e in do_handle_one_connection (connect=<optimized out>, connect@entry=0x557fcd6be098, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410
          #19 0x0000557fcaf4e293 in handle_one_connection (arg=arg@entry=0x557fcd6be098) at /test/10.6_dbg/sql/sql_connect.cc:1312
          #20 0x0000557fcb3fc166 in pfs_spawn_thread (arg=0x557fcd5a6cf8) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201
          #21 0x0000148cd71cf609 in start_thread (arg=<optimized out>) at pthread_create.c:477
          #22 0x0000148cd6dbe293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
          

          Bug confirmed present in:
          MariaDB: 10.6.2 (dbg)

          Bug (or feature/syntax) confirmed not present in:
          MariaDB: 10.2.38 (dbg), 10.2.38 (opt), 10.3.29 (dbg), 10.3.29 (opt), 10.4.19 (dbg), 10.4.19 (opt), 10.5.10 (dbg), 10.5.10 (opt), 10.6.2 (opt)
          MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.34 (dbg), 5.7.34 (opt), 8.0.24 (dbg), 8.0.24 (opt)

          Roel Roel Van de Paar added a comment - - edited Different outcome with slightly modified test: SET SESSION old_mode= '' ; CREATE TABLE t (a INT ) ENGINE=InnoDB; ALTER TABLE mysql.innodb_index_stats MODIFY stat_description VARCHAR (1024) COLLATE utf8_bin; DROP TABLE t; Leads to: 10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug) mysqld: /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408: dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t): Assertion `table->cols[j].len < req_schema->columns[i].len' failed. 10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug) Core was generated by `/test/MD120621-mariadb-10.6.2-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'. Program terminated with signal SIGABRT, Aborted. #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 [Current thread is 1 (Thread 0x148cd4103700 (LWP 2945455))] (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x0000148cd6cc1859 in __GI_abort () at abort.c:79 #2 0x0000148cd6cc1729 in __assert_fail_base (fmt=0x148cd6e57588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x557fcbd53948 "table->cols[j].len < req_schema->columns[i].len", file=0x557fcbd53778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=408, function=<optimized out>) at assert.c:92 #3 0x0000148cd6cd2f36 in __GI___assert_fail (assertion=assertion@entry=0x557fcbd53948 "table->cols[j].len < req_schema->columns[i].len", file=file@entry=0x557fcbd53778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=line@entry=408, function=function@entry=0x557fcbd53878 "dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t)") at assert.c:101 #4 0x0000557fcb7f385f in dict_table_schema_check (req_schema=req_schema@entry=0x557fcc34de80 <index_stats_schema>, errstr=errstr@entry=0x148cd40ffea0 "\300", errstr_sz=errstr_sz@entry=512) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408 #5 0x0000557fcb7f6c34 in dict_stats_persistent_storage_check (caller_has_dict_sys_mutex=caller_has_dict_sys_mutex@entry=true) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:503 #6 0x0000557fcb7f6cfd in dict_stats_exec_sql (pinfo=pinfo@entry=0x148c88024238, sql=sql@entry=0x557fcbd53b58 "PROCEDURE DELETE_FROM_TABLE_STATS () IS\nBEGIN\nDELETE FROM \"mysql/innodb_table_stats\" WHERE\ndatabase_name = :database_name AND\ntable_name = :table_name;\nEND;\n", trx=trx@entry=0x148cd43be290) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:536 #7 0x0000557fcb7f6ebb in dict_stats_delete_from_table_stats (database_name=database_name@entry=0x148cd4100130 "test", table_name=table_name@entry=0x148cd4100200 "t", trx=trx@entry=0x148cd43be290) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:3653 #8 0x0000557fcb8028c3 in trx_t::drop_table_statistics (this=this@entry=0x148cd43be290, name=<optimized out>) at /test/10.6_dbg/storage/innobase/dict/drop.cc:130 #9 0x0000557fcb4c910b in ha_innobase::delete_table (this=<optimized out>, name=<optimized out>) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:13376 #10 0x0000557fcb0c48e2 in hton_drop_table (hton=<optimized out>, path=<optimized out>) at /test/10.6_dbg/sql/handler.cc:576 #11 0x0000557fcb0ce1b2 in ha_delete_table (thd=thd@entry=0x148c88000db8, hton=hton@entry=0x557fcd1d3538, path=path@entry=0x148cd41018f0 "./test/t", db=db@entry=0x148cd41016c0, alias=alias@entry=0x148cd41016d0, generate_warning=generate_warning@entry=true) at /test/10.6_dbg/sql/handler.cc:3072 #12 0x0000557fcaeae682 in mysql_rm_table_no_locks (thd=thd@entry=0x148c88000db8, tables=tables@entry=0x148c88014060, current_db=current_db@entry=0x148c88000e50, ddl_log_state=0x148cd41016f0, ddl_log_state@entry=0x0, if_exists=if_exists@entry=false, drop_temporary=drop_temporary@entry=false, drop_view=false, drop_sequence=false, dont_log_query=false, dont_free_locks=false) at /test/10.6_dbg/sql/sql_table.cc:1471 #13 0x0000557fcaeb0779 in mysql_rm_table (thd=thd@entry=0x148c88000db8, tables=tables@entry=0x148c88014060, if_exists=<optimized out>, drop_temporary=<optimized out>, drop_sequence=<optimized out>, dont_log_query=dont_log_query@entry=false) at /test/10.6_dbg/sql/sql_table.cc:1044 #14 0x0000557fcadee0ad in mysql_execute_command (thd=thd@entry=0x148c88000db8) at /test/10.6_dbg/sql/structs.h:567 #15 0x0000557fcadd7890 in mysql_parse (thd=thd@entry=0x148c88000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x148cd4102400) at /test/10.6_dbg/sql/sql_parse.cc:8016 #16 0x0000557fcade63fa in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x148c88000db8, packet=packet@entry=0x148c8800b769 "DROP TABLE t", packet_length=packet_length@entry=12, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1340 #17 0x0000557fcade97da in do_command (thd=0x148c88000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1406 #18 0x0000557fcaf4dc8e in do_handle_one_connection (connect=<optimized out>, connect@entry=0x557fcd6be098, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410 #19 0x0000557fcaf4e293 in handle_one_connection (arg=arg@entry=0x557fcd6be098) at /test/10.6_dbg/sql/sql_connect.cc:1312 #20 0x0000557fcb3fc166 in pfs_spawn_thread (arg=0x557fcd5a6cf8) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201 #21 0x0000148cd71cf609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #22 0x0000148cd6dbe293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Bug confirmed present in: MariaDB: 10.6.2 (dbg) Bug (or feature/syntax) confirmed not present in: MariaDB: 10.2.38 (dbg), 10.2.38 (opt), 10.3.29 (dbg), 10.3.29 (opt), 10.4.19 (dbg), 10.4.19 (opt), 10.5.10 (dbg), 10.5.10 (opt), 10.6.2 (opt) MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.34 (dbg), 5.7.34 (opt), 8.0.24 (dbg), 8.0.24 (opt)

          The debug assertion can obviously be violated. I removed it, because we do still report errors in this case.

          I did not check it, but I think that a similar error could be possible in earlier versions if the encoding of the column was changed to be utf8mb4.

          marko Marko Mäkelä added a comment - The debug assertion can obviously be violated. I removed it, because we do still report errors in this case. I did not check it, but I think that a similar error could be possible in earlier versions if the encoding of the column was changed to be utf8mb4.

          Had one more testcase for this bug with slightly different uniqueID.

          table->cols[j].len < req_schema->columns[i].len|SIGABRT|dict_table_schema_check|dict_stats_persistent_storage_check|dict_stats_update|dict_stats_init
          

          Adding it for completeness.

          SET sql_mode='';
          CREATE TABLE t (a ENUM ('','') DEFAULT'');
          SET SESSION old_mode=no_progress_info;
          ALTER TABLE mysql.innodb_index_stats MODIFY stat_description VARCHAR(1024) COLLATE utf8_bin;
          INSERT INTO t VALUES (0,0,36,'','','','');
          

          Leads to:

          10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug)

          mysqld: /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408: dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t): Assertion `table->cols[j].len < req_schema->columns[i].len' failed.
          

          10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug)

          Core was generated by `/test/MD120621-mariadb-10.6.2-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'.
          Program terminated with signal SIGABRT, Aborted.
          #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
          [Current thread is 1 (Thread 0x150ef88d7700 (LWP 212134))]
          (gdb) bt
          #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
          #1  0x0000150efb495859 in __GI_abort () at abort.c:79
          #2  0x0000150efb495729 in __assert_fail_base (fmt=0x150efb62b588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55f3d7562948 "table->cols[j].len < req_schema->columns[i].len", file=0x55f3d7562778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=408, function=<optimized out>) at assert.c:92
          #3  0x0000150efb4a6f36 in __GI___assert_fail (assertion=assertion@entry=0x55f3d7562948 "table->cols[j].len < req_schema->columns[i].len", file=file@entry=0x55f3d7562778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=line@entry=408, function=function@entry=0x55f3d7562878 "dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t)") at assert.c:101
          #4  0x000055f3d700285f in dict_table_schema_check (req_schema=req_schema@entry=0x55f3d7b5ce80 <index_stats_schema>, errstr=errstr@entry=0x150ef88d34e0 "", errstr_sz=errstr_sz@entry=512) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408
          #5  0x000055f3d7005c34 in dict_stats_persistent_storage_check (caller_has_dict_sys_mutex=caller_has_dict_sys_mutex@entry=false) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:503
          #6  0x000055f3d700d4ff in dict_stats_update (table=table@entry=0x150ea8022b08, stats_upd_option=DICT_STATS_FETCH_ONLY_IF_NOT_IN_MEMORY) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:3529
          #7  0x000055f3d6cc3cae in dict_stats_init (table=0x150ea8022b08) at /test/10.6_dbg/storage/innobase/include/dict0stats.ic:165
          #8  ha_innobase::info_low (this=this@entry=0x150ea8027620, flag=flag@entry=282, is_analyze=is_analyze@entry=false) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:14262
          #9  0x000055f3d6cc4d90 in ha_innobase::info (this=this@entry=0x150ea8027620, flag=flag@entry=282) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:14524
          #10 0x000055f3d6ccc5fc in ha_innobase::open (this=0x150ea8027620, name=0x150ea8043360 "./test/t") at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:5949
          #11 0x000055f3d68d3ffb in handler::ha_open (this=0x150ea8027620, table_arg=table_arg@entry=0x150ea8021f68, name=0x150ea8043360 "./test/t", mode=mode@entry=2, test_if_locked=test_if_locked@entry=18, mem_root=mem_root@entry=0x0, partitions_to_open=0x0) at /test/10.6_dbg/sql/handler.cc:3285
          #12 0x000055f3d6715815 in open_table_from_share (thd=thd@entry=0x150ea8000db8, share=share@entry=0x150ea8042dc0, alias=alias@entry=0x150ea80140f0, db_stat=db_stat@entry=33, prgflag=prgflag@entry=8, ha_open_flags=18, outparam=0x150ea8021f68, is_create_table=false, partitions_to_open=0x0) at /test/10.6_dbg/sql/table.cc:4307
          #13 0x000055f3d65652f2 in open_table (thd=thd@entry=0x150ea8000db8, table_list=table_list@entry=0x150ea80140a8, ot_ctx=ot_ctx@entry=0x150ef88d5ab0) at /test/10.6_dbg/sql/sql_base.cc:2003
          #14 0x000055f3d6569a22 in open_and_process_table (ot_ctx=0x150ef88d5ab0, has_prelocking_list=false, prelocking_strategy=0x150ef88d5c90, flags=0, counter=0x150ef88d5b4c, tables=0x150ea80140a8, thd=0x150ea8000db8) at /test/10.6_dbg/sql/sql_base.cc:3801
          #15 open_tables (thd=thd@entry=0x150ea8000db8, options=@0x150ea8006620: {m_options = DDL_options_st::OPT_NONE}, start=start@entry=0x150ef88d5b38, counter=counter@entry=0x150ef88d5b4c, flags=flags@entry=0, prelocking_strategy=prelocking_strategy@entry=0x150ef88d5c90) at /test/10.6_dbg/sql/sql_base.cc:4284
          #16 0x000055f3d656ab1f in open_and_lock_tables (thd=thd@entry=0x150ea8000db8, options=@0x150ea8006620: {m_options = DDL_options_st::OPT_NONE}, tables=<optimized out>, tables@entry=0x150ea80140a8, derived=derived@entry=true, flags=flags@entry=0, prelocking_strategy=prelocking_strategy@entry=0x150ef88d5c90) at /test/10.6_dbg/sql/sql_base.cc:5246
          #17 0x000055f3d65b3d5f in open_and_lock_tables (flags=0, derived=true, tables=0x150ea80140a8, thd=0x150ea8000db8) at /test/10.6_dbg/sql/sql_base.h:509
          #18 mysql_insert (thd=thd@entry=0x150ea8000db8, table_list=0x150ea80140a8, fields=@0x150ea8005fd8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55f3d7be3f80 <end_of_list>, last = 0x150ea8005fd8, elements = 0}, <No data fields>}, values_list=@0x150ea8006020: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x150ea8014ff0, last = 0x150ea8014ff0, elements = 1}, <No data fields>}, update_fields=@0x150ea8006008: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55f3d7be3f80 <end_of_list>, last = 0x150ea8006008, elements = 0}, <No data fields>}, update_values=@0x150ea8005ff0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55f3d7be3f80 <end_of_list>, last = 0x150ea8005ff0, elements = 0}, <No data fields>}, duplic=DUP_ERROR, ignore=false, result=0x0) at /test/10.6_dbg/sql/sql_insert.cc:756
          #19 0x000055f3d65fbd38 in mysql_execute_command (thd=thd@entry=0x150ea8000db8) at /test/10.6_dbg/sql/sql_parse.cc:4556
          #20 0x000055f3d65e6890 in mysql_parse (thd=thd@entry=0x150ea8000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x150ef88d6400) at /test/10.6_dbg/sql/sql_parse.cc:8016
          #21 0x000055f3d65f53fa in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x150ea8000db8, packet=packet@entry=0x150ea800b769 "INSERT INTO t VALUES (0,0,36,'','','','')", packet_length=packet_length@entry=41, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1340
          #22 0x000055f3d65f87da in do_command (thd=0x150ea8000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1406
          #23 0x000055f3d675cc8e in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55f3d9a3f418, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410
          #24 0x000055f3d675d293 in handle_one_connection (arg=arg@entry=0x55f3d9a3f418) at /test/10.6_dbg/sql/sql_connect.cc:1312
          #25 0x000055f3d6c0b166 in pfs_spawn_thread (arg=0x55f3d9927ab8) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201
          #26 0x0000150efb9a3609 in start_thread (arg=<optimized out>) at pthread_create.c:477
          #27 0x0000150efb592293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
          

          Bug confirmed present in:
          MariaDB: 10.6.2 (dbg)

          Bug (or feature/syntax) confirmed not present in:
          MariaDB: 10.2.39 (dbg), 10.2.39 (opt), 10.3.30 (dbg), 10.3.30 (opt), 10.4.20 (dbg), 10.4.20 (opt), 10.5.11 (dbg), 10.5.11 (opt), 10.6.2 (opt)
          MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.34 (dbg), 5.7.34 (opt), 8.0.24 (dbg), 8.0.24 (opt)

          Roel Roel Van de Paar added a comment - Had one more testcase for this bug with slightly different uniqueID. table->cols[j].len < req_schema->columns[i].len|SIGABRT|dict_table_schema_check|dict_stats_persistent_storage_check|dict_stats_update|dict_stats_init Adding it for completeness. SET sql_mode= '' ; CREATE TABLE t (a ENUM ( '' , '' ) DEFAULT '' ); SET SESSION old_mode=no_progress_info; ALTER TABLE mysql.innodb_index_stats MODIFY stat_description VARCHAR (1024) COLLATE utf8_bin; INSERT INTO t VALUES (0,0,36, '' , '' , '' , '' ); Leads to: 10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug) mysqld: /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408: dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t): Assertion `table->cols[j].len < req_schema->columns[i].len' failed. 10.6.2 6c39eaeb126328e7813b146ecf652d51e4508981 (Debug) Core was generated by `/test/MD120621-mariadb-10.6.2-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'. Program terminated with signal SIGABRT, Aborted. #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 [Current thread is 1 (Thread 0x150ef88d7700 (LWP 212134))] (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x0000150efb495859 in __GI_abort () at abort.c:79 #2 0x0000150efb495729 in __assert_fail_base (fmt=0x150efb62b588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55f3d7562948 "table->cols[j].len < req_schema->columns[i].len", file=0x55f3d7562778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=408, function=<optimized out>) at assert.c:92 #3 0x0000150efb4a6f36 in __GI___assert_fail (assertion=assertion@entry=0x55f3d7562948 "table->cols[j].len < req_schema->columns[i].len", file=file@entry=0x55f3d7562778 "/test/10.6_dbg/storage/innobase/dict/dict0stats.cc", line=line@entry=408, function=function@entry=0x55f3d7562878 "dberr_t dict_table_schema_check(const dict_table_schema_t*, char*, size_t)") at assert.c:101 #4 0x000055f3d700285f in dict_table_schema_check (req_schema=req_schema@entry=0x55f3d7b5ce80 <index_stats_schema>, errstr=errstr@entry=0x150ef88d34e0 "", errstr_sz=errstr_sz@entry=512) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:408 #5 0x000055f3d7005c34 in dict_stats_persistent_storage_check (caller_has_dict_sys_mutex=caller_has_dict_sys_mutex@entry=false) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:503 #6 0x000055f3d700d4ff in dict_stats_update (table=table@entry=0x150ea8022b08, stats_upd_option=DICT_STATS_FETCH_ONLY_IF_NOT_IN_MEMORY) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:3529 #7 0x000055f3d6cc3cae in dict_stats_init (table=0x150ea8022b08) at /test/10.6_dbg/storage/innobase/include/dict0stats.ic:165 #8 ha_innobase::info_low (this=this@entry=0x150ea8027620, flag=flag@entry=282, is_analyze=is_analyze@entry=false) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:14262 #9 0x000055f3d6cc4d90 in ha_innobase::info (this=this@entry=0x150ea8027620, flag=flag@entry=282) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:14524 #10 0x000055f3d6ccc5fc in ha_innobase::open (this=0x150ea8027620, name=0x150ea8043360 "./test/t") at /test/10.6_dbg/storage/innobase/handler/ha_innodb.cc:5949 #11 0x000055f3d68d3ffb in handler::ha_open (this=0x150ea8027620, table_arg=table_arg@entry=0x150ea8021f68, name=0x150ea8043360 "./test/t", mode=mode@entry=2, test_if_locked=test_if_locked@entry=18, mem_root=mem_root@entry=0x0, partitions_to_open=0x0) at /test/10.6_dbg/sql/handler.cc:3285 #12 0x000055f3d6715815 in open_table_from_share (thd=thd@entry=0x150ea8000db8, share=share@entry=0x150ea8042dc0, alias=alias@entry=0x150ea80140f0, db_stat=db_stat@entry=33, prgflag=prgflag@entry=8, ha_open_flags=18, outparam=0x150ea8021f68, is_create_table=false, partitions_to_open=0x0) at /test/10.6_dbg/sql/table.cc:4307 #13 0x000055f3d65652f2 in open_table (thd=thd@entry=0x150ea8000db8, table_list=table_list@entry=0x150ea80140a8, ot_ctx=ot_ctx@entry=0x150ef88d5ab0) at /test/10.6_dbg/sql/sql_base.cc:2003 #14 0x000055f3d6569a22 in open_and_process_table (ot_ctx=0x150ef88d5ab0, has_prelocking_list=false, prelocking_strategy=0x150ef88d5c90, flags=0, counter=0x150ef88d5b4c, tables=0x150ea80140a8, thd=0x150ea8000db8) at /test/10.6_dbg/sql/sql_base.cc:3801 #15 open_tables (thd=thd@entry=0x150ea8000db8, options=@0x150ea8006620: {m_options = DDL_options_st::OPT_NONE}, start=start@entry=0x150ef88d5b38, counter=counter@entry=0x150ef88d5b4c, flags=flags@entry=0, prelocking_strategy=prelocking_strategy@entry=0x150ef88d5c90) at /test/10.6_dbg/sql/sql_base.cc:4284 #16 0x000055f3d656ab1f in open_and_lock_tables (thd=thd@entry=0x150ea8000db8, options=@0x150ea8006620: {m_options = DDL_options_st::OPT_NONE}, tables=<optimized out>, tables@entry=0x150ea80140a8, derived=derived@entry=true, flags=flags@entry=0, prelocking_strategy=prelocking_strategy@entry=0x150ef88d5c90) at /test/10.6_dbg/sql/sql_base.cc:5246 #17 0x000055f3d65b3d5f in open_and_lock_tables (flags=0, derived=true, tables=0x150ea80140a8, thd=0x150ea8000db8) at /test/10.6_dbg/sql/sql_base.h:509 #18 mysql_insert (thd=thd@entry=0x150ea8000db8, table_list=0x150ea80140a8, fields=@0x150ea8005fd8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55f3d7be3f80 <end_of_list>, last = 0x150ea8005fd8, elements = 0}, <No data fields>}, values_list=@0x150ea8006020: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x150ea8014ff0, last = 0x150ea8014ff0, elements = 1}, <No data fields>}, update_fields=@0x150ea8006008: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55f3d7be3f80 <end_of_list>, last = 0x150ea8006008, elements = 0}, <No data fields>}, update_values=@0x150ea8005ff0: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x55f3d7be3f80 <end_of_list>, last = 0x150ea8005ff0, elements = 0}, <No data fields>}, duplic=DUP_ERROR, ignore=false, result=0x0) at /test/10.6_dbg/sql/sql_insert.cc:756 #19 0x000055f3d65fbd38 in mysql_execute_command (thd=thd@entry=0x150ea8000db8) at /test/10.6_dbg/sql/sql_parse.cc:4556 #20 0x000055f3d65e6890 in mysql_parse (thd=thd@entry=0x150ea8000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x150ef88d6400) at /test/10.6_dbg/sql/sql_parse.cc:8016 #21 0x000055f3d65f53fa in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x150ea8000db8, packet=packet@entry=0x150ea800b769 "INSERT INTO t VALUES (0,0,36,'','','','')", packet_length=packet_length@entry=41, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1340 #22 0x000055f3d65f87da in do_command (thd=0x150ea8000db8, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1406 #23 0x000055f3d675cc8e in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55f3d9a3f418, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1410 #24 0x000055f3d675d293 in handle_one_connection (arg=arg@entry=0x55f3d9a3f418) at /test/10.6_dbg/sql/sql_connect.cc:1312 #25 0x000055f3d6c0b166 in pfs_spawn_thread (arg=0x55f3d9927ab8) at /test/10.6_dbg/storage/perfschema/pfs.cc:2201 #26 0x0000150efb9a3609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #27 0x0000150efb592293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Bug confirmed present in: MariaDB: 10.6.2 (dbg) Bug (or feature/syntax) confirmed not present in: MariaDB: 10.2.39 (dbg), 10.2.39 (opt), 10.3.30 (dbg), 10.3.30 (opt), 10.4.20 (dbg), 10.4.20 (opt), 10.5.11 (dbg), 10.5.11 (opt), 10.6.2 (opt) MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.34 (dbg), 5.7.34 (opt), 8.0.24 (dbg), 8.0.24 (opt)

          People

            marko Marko Mäkelä
            Roel Roel Van de Paar
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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