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

Assertion `table->cols[j].len < req_schema->columns[i].len' failed in dberr_t dict_table_schema_check(dict_table_schema_t*, char*, size_t)

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.4, 10.5, 10.6, 10.9, 10.10, 10.11, 11.0, 11.1, 11.2
    • 10.4, 10.5, 10.6, 10.11, 11.1
    • None
    • None

    Description

      SET sql_mode='maxdb';
      ALTER TABLE mysql.innodb_table_stats MODIFY LAST_UPDATE TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP();
      

      Leads to

      10.4.31 922db0642b6321ece41adb3232c1616812143573 (Debug)

      mariadbd: /test/10.4_dbg/storage/innobase/dict/dict0dict.cc:5728: dberr_t dict_table_schema_check(dict_table_schema_t*, char*, size_t): Assertion `table->cols[j].len < req_schema->columns[i].len' failed.
      

      10.4.31 922db0642b6321ece41adb3232c1616812143573 (Debug)

      Core was generated by `/test/MD040723-mariadb-10.4.31-linux-x86_64-dbg/bin/mariadbd --no-defaults --co'.
      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 0x149a4c082700 (LWP 2367801))]
      (gdb) bt
      #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #1  0x0000149a502fb859 in __GI_abort () at abort.c:79
      #2  0x0000149a502fb729 in __assert_fail_base (fmt=0x149a50491588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55cc6859cf68 "table->cols[j].len < req_schema->columns[i].len", file=0x55cc6859bb78 "/test/10.4_dbg/storage/innobase/dict/dict0dict.cc", line=5728, function=<optimized out>) at assert.c:92
      #3  0x0000149a5030cfd6 in __GI___assert_fail (assertion=assertion@entry=0x55cc6859cf68 "table->cols[j].len < req_schema->columns[i].len", file=file@entry=0x55cc6859bb78 "/test/10.4_dbg/storage/innobase/dict/dict0dict.cc", line=line@entry=5728, function=function@entry=0x55cc6859cea0 "dberr_t dict_table_schema_check(dict_table_schema_t*, char*, size_t)") at assert.c:101
      #4  0x000055cc6805db4b in dict_table_schema_check (req_schema=req_schema@entry=0x149a4c079d60, errstr=errstr@entry=0x149a4c07a100 "", errstr_sz=errstr_sz@entry=512) at /test/10.4_dbg/storage/innobase/dict/dict0dict.cc:5728
      #5  0x000055cc6808c54c in dict_stats_persistent_storage_check (caller_has_dict_sys_mutex=caller_has_dict_sys_mutex@entry=true) at /test/10.4_dbg/storage/innobase/dict/dict0stats.cc:245
      #6  0x000055cc6808c72a in dict_stats_exec_sql (pinfo=pinfo@entry=0x1499f0043ce0, sql=sql@entry=0x55cc685a1e18 "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=0x0) at /test/10.4_dbg/storage/innobase/dict/dict0stats.cc:289
      #7  0x000055cc6808d5ca in dict_stats_delete_from_table_stats (table_name=0x149a4c07a430 "#mysql50##sql2-241fb0-9", database_name=0x149a4c07a360 "mysql") at /test/10.4_dbg/storage/innobase/dict/dict0stats.cc:3507
      #8  dict_stats_drop_table (db_and_table=<optimized out>, db_and_table@entry=0x149a4c07adf0 "mysql/#sql2-241fb0-9", errstr=errstr@entry=0x149a4c07a720 "", errstr_sz=errstr_sz@entry=1024) at /test/10.4_dbg/storage/innobase/dict/dict0stats.cc:3590
      #9  0x000055cc67e90bcd in row_drop_table_for_mysql (name=name@entry=0x149a4c07adf0 "mysql/#sql2-241fb0-9", trx=trx@entry=0x149a4e22c208, sqlcom=sqlcom@entry=SQLCOM_ALTER_TABLE, create_failed=create_failed@entry=false, nonatomic=<optimized out>, nonatomic@entry=true) at /test/10.4_dbg/storage/innobase/row/row0mysql.cc:3418
      #10 0x000055cc67d041cf in ha_innobase::delete_table (this=this@entry=0x1499f0015a98, name=<optimized out>, name@entry=0x149a4c07c8b0 "./mysql/#sql2-241fb0-9", sqlcom=sqlcom@entry=SQLCOM_ALTER_TABLE) at /test/10.4_dbg/storage/innobase/handler/ha_innodb.cc:13307
      #11 0x000055cc67cfa99a in ha_innobase::delete_table (this=0x1499f0015a98, name=0x149a4c07c8b0 "./mysql/#sql2-241fb0-9") at /test/10.4_dbg/storage/innobase/handler/ha_innodb.cc:13432
      #12 0x000055cc679ce627 in handler::ha_delete_table (this=this@entry=0x1499f0015a98, name=name@entry=0x149a4c07c8b0 "./mysql/#sql2-241fb0-9") at /test/10.4_dbg/sql/handler.cc:4803
      #13 0x000055cc679ce7dc in ha_delete_table (thd=<optimized out>, table_type=table_type@entry=0x55cc69f0bde8, path=path@entry=0x149a4c07c8b0 "./mysql/#sql2-241fb0-9", db=db@entry=0x149a4c07e590, alias=alias@entry=0x149a4c07cc50, generate_warning=generate_warning@entry=false) at /test/10.4_dbg/sql/handler.cc:2652
      #14 0x000055cc677f5292 in quick_rm_table (thd=thd@entry=0x1499f0000d28, base=base@entry=0x55cc69f0bde8, db=db@entry=0x149a4c07e590, table_name=table_name@entry=0x149a4c07cc50, flags=flags@entry=3, table_path=table_path@entry=0x0) at /test/10.4_dbg/include/my_pthread.h:376
      #15 0x000055cc6780964a in mysql_alter_table (thd=thd@entry=0x1499f0000d28, new_db=new_db@entry=0x1499f0005398, new_name=new_name@entry=0x1499f00057f0, create_info=create_info@entry=0x149a4c07f160, table_list=<optimized out>, table_list@entry=0x1499f00126c0, recreate_info=recreate_info@entry=0x149a4c07f080, alter_info=0x149a4c07f0a0, order_num=0, order=0x0, ignore=false) at /test/10.4_dbg/sql/sql_table.cc:10713
      #16 0x000055cc67876b22 in Sql_cmd_alter_table::execute (this=0x1499f0013118, thd=0x1499f0000d28) at /test/10.4_dbg/sql/sql_alter.cc:531
      #17 0x000055cc6774cf0b in mysql_execute_command (thd=thd@entry=0x1499f0000d28) at /test/10.4_dbg/sql/sql_parse.cc:6216
      #18 0x000055cc6774f28f in mysql_parse (thd=thd@entry=0x1499f0000d28, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x149a4c0813b0, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_parse.cc:8008
      #19 0x000055cc67751daa in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x1499f0000d28, packet=packet@entry=0x1499f0019509 "", packet_length=packet_length@entry=132, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.4_dbg/sql/sql_class.h:1231
      #20 0x000055cc677545d5 in do_command (thd=0x1499f0000d28) at /test/10.4_dbg/sql/sql_parse.cc:1378
      #21 0x000055cc678710ed in do_handle_one_connection (connect=<optimized out>) at /test/10.4_dbg/sql/sql_connect.cc:1420
      #22 0x000055cc678711a9 in handle_one_connection (arg=<optimized out>) at /test/10.4_dbg/sql/sql_connect.cc:1324
      #23 0x0000149a5080c609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #24 0x0000149a503f8133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      The above assert message is removed in 10.6 as part of MDEV-25907, but it asserts differently when adding CREATE TABLE statement after the above testcase.

      SET sql_mode='maxdb';
      ALTER TABLE mysql.innodb_table_stats MODIFY LAST_UPDATE TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP();
      CREATE TABLE t (a INT KEY);
      

      Leads to

      10.6.15 f7b8a2c953e21d7a1c8e7ef3b7107c13a1402967 (Debug)

      mariadbd: /test/10.6_dbg/storage/innobase/rem/rem0rec.cc:1236: ulint rec_get_converted_size_comp_prefix_low(const dict_index_t*, const dfield_t*, ulint, ulint*, rec_comp_status_t, bool) [with bool mblob = false; bool redundant_temp = false; ulint = long unsigned int]: Assertion `field->col->is_dropped() || !field->col->mbmaxlen || len >= field->col->mbminlen * fixed_len / field->col->mbmaxlen' failed.
      

      10.6.15 f7b8a2c953e21d7a1c8e7ef3b7107c13a1402967 (Debug)

      Core was generated by `/test/MD050723-mariadb-10.6.15-linux-x86_64-dbg/bin/mariadbd --no-defaults --co'.
      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 0x1534ec102700 (LWP 4169043))]
      (gdb) bt
      #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      #1  0x00001535036d7859 in __GI_abort () at abort.c:79
      #2  0x00001535036d7729 in __assert_fail_base (fmt=0x15350386d588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x5609b0121570 "field->col->is_dropped() || !field->col->mbmaxlen || len >= field->col->mbminlen * fixed_len / field->col->mbmaxlen", file=0x5609b0121198 "/test/10.6_dbg/storage/innobase/rem/rem0rec.cc", line=1236, function=<optimized out>) at assert.c:92
      #3  0x00001535036e8fd6 in __GI___assert_fail (assertion=assertion@entry=0x5609b0121570 "field->col->is_dropped() || !field->col->mbmaxlen || len >= field->col->mbminlen * fixed_len / field->col->mbmaxlen", file=file@entry=0x5609b0121198 "/test/10.6_dbg/storage/innobase/rem/rem0rec.cc", line=line@entry=1236, function=function@entry=0x5609b01211c8 "ulint rec_get_converted_size_comp_prefix_low(const dict_index_t*, const dfield_t*, ulint, ulint*, rec_comp_status_t, bool) [with bool mblob = false; bool redundant_temp = false; ulint = long unsigned "...) at assert.c:101
      #4  0x00005609afa3dcf7 in rec_get_converted_size_comp_prefix_low<>(const dict_index_t *, const dfield_t *, ulint, ulint *, rec_comp_status_t, bool) (index=index@entry=0x1534ac045270, dfield=0x1534ac043f48, n_fields=<optimized out>, extra=extra@entry=0x0, status=status@entry=REC_STATUS_ORDINARY, temp=temp@entry=false) at /test/10.6_dbg/storage/innobase/include/dict0mem.h:644
      #5  0x00005609afa44ec2 in rec_get_converted_size_comp (index=index@entry=0x1534ac045270, tuple=tuple@entry=0x1534ac043eb0, extra=extra@entry=0x0) at /test/10.6_dbg/storage/innobase/rem/rem0rec.cc:1319
      #6  0x00005609afb7e8d7 in rec_get_converted_size (index=index@entry=0x1534ac045270, dtuple=dtuple@entry=0x1534ac043eb0, n_ext=0) at /test/10.6_dbg/storage/innobase/include/rem0rec.inl:1120
      #7  0x00005609afb887fb in btr_cur_optimistic_insert (flags=flags@entry=0, cursor=cursor@entry=0x1534ec0fd350, offsets=offsets@entry=0x1534ec0fd338, heap=heap@entry=0x1534ec0fd330, entry=entry@entry=0x1534ac043eb0, rec=rec@entry=0x1534ec0fd348, big_rec=0x1534ec0fd328, n_ext=<optimized out>, thr=0x1534ac04fda8, mtr=0x1534ec0fd8f0) at /test/10.6_dbg/storage/innobase/btr/btr0cur.cc:2342
      #8  0x00005609afa746a2 in row_ins_clust_index_entry_low (flags=flags@entry=0, mode=<optimized out>, mode@entry=BTR_MODIFY_LEAF, index=index@entry=0x1534ac045270, n_uniq=n_uniq@entry=2, entry=entry@entry=0x1534ac043eb0, n_ext=n_ext@entry=0, thr=<optimized out>) at /test/10.6_dbg/storage/innobase/row/row0ins.cc:2849
      #9  0x00005609afa762ef in row_ins_clust_index_entry (index=index@entry=0x1534ac045270, entry=entry@entry=0x1534ac043eb0, thr=thr@entry=0x1534ac04fda8, n_ext=n_ext@entry=0) at /test/10.6_dbg/storage/innobase/row/row0ins.cc:3239
      #10 0x00005609afa77d55 in row_ins_index_entry (thr=0x1534ac04fda8, entry=0x1534ac043eb0, index=0x1534ac045270) at /test/10.6_dbg/storage/innobase/row/row0ins.cc:3365
      #11 row_ins_index_entry_step (thr=0x1534ac04fda8, node=<optimized out>) at /test/10.6_dbg/storage/innobase/row/row0ins.cc:3533
      #12 row_ins (thr=0x1534ac04fda8, node=<optimized out>) at /test/10.6_dbg/storage/innobase/row/row0ins.cc:3658
      #13 row_ins_step (thr=thr@entry=0x1534ac04fda8) at /test/10.6_dbg/storage/innobase/row/row0ins.cc:3787
      #14 0x00005609afa324e5 in que_thr_step (thr=0x1534ac04fda8) at /test/10.6_dbg/storage/innobase/que/que0que.cc:567
      #15 que_run_threads_low (thr=0x1534ac04fda8) at /test/10.6_dbg/storage/innobase/que/que0que.cc:644
      #16 que_run_threads (thr=0x1534ac04fda8) at /test/10.6_dbg/storage/innobase/que/que0que.cc:664
      #17 0x00005609afa32a86 in que_eval_sql (info=info@entry=0x1534ac041bf0, sql=sql@entry=0x5609b015f3a8 "PROCEDURE TABLE_STATS_SAVE () IS\nBEGIN\nDELETE FROM \"mysql/innodb_table_stats\"\nWHERE\ndatabase_name = :database_name AND\ntable_name = :table_name;\nINSERT INTO \"mysql/innodb_table_stats\"\nVALUES\n(\n:databa"..., trx=trx@entry=0x15350182b180) at /test/10.6_dbg/storage/innobase/que/que0que.cc:703
      #18 0x00005609afc3ce91 in dict_stats_exec_sql (pinfo=pinfo@entry=0x1534ac041bf0, sql=sql@entry=0x5609b015f3a8 "PROCEDURE TABLE_STATS_SAVE () IS\nBEGIN\nDELETE FROM \"mysql/innodb_table_stats\"\nWHERE\ndatabase_name = :database_name AND\ntable_name = :table_name;\nINSERT INTO \"mysql/innodb_table_stats\"\nVALUES\n(\n:databa"..., trx=trx@entry=0x15350182b180) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:546
      #19 0x00005609afc41893 in dict_stats_save (table_orig=table_orig@entry=0x1534c80018a0, only_for_index=only_for_index@entry=0x0) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:3324
      #20 0x00005609afc4519b in dict_stats_update (table=0x1534c80018a0, stats_upd_option=stats_upd_option@entry=DICT_STATS_EMPTY_TABLE) at /test/10.6_dbg/storage/innobase/dict/dict0stats.cc:4121
      #21 0x00005609af929453 in ha_innobase::create (this=<optimized out>, name=<optimized out>, form=0x1534ec0ff220, create_info=0x1534ec100b30, file_per_table=<optimized out>, trx=0x15350182a680, trx@entry=0x0) at /test/10.6_dbg/storage/innobase/handler/ha_innodb.h:712
      #22 0x00005609af9294f3 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:13337
      #23 0x00005609af5ed8e5 in handler::ha_create (this=0x1534ac03e0e0, name=0x1534ec100650 "./test/t", form=form@entry=0x1534ec0ff220, info_arg=info_arg@entry=0x1534ec100b30) at /test/10.6_dbg/sql/handler.cc:5504
      #24 0x00005609af5ee4ee in ha_create_table (thd=thd@entry=0x1534ac000d48, path=<optimized out>, db=0x1534ac013860 "test", table_name=0x1534ac013120 "t", create_info=create_info@entry=0x1534ec100b30, frm=frm@entry=0x1534ec100640, skip_frm_file=false) at /test/10.6_dbg/sql/handler.cc:5972
      #25 0x00005609af3eafe4 in create_table_impl (thd=thd@entry=0x1534ac000d48, ddl_log_state_create=ddl_log_state_create@entry=0x1534ec1008e0, ddl_log_state_rm=<optimized out>, ddl_log_state_rm@entry=0x1534ec100900, orig_db=@0x1534ac013170: {str = 0x1534ac013860 "test", length = 4}, orig_table_name=@0x1534ac013180: {str = 0x1534ac013120 "t", length = 1}, db=@0x1534ac013170: {str = 0x1534ac013860 "test", length = 4}, table_name=@0x1534ac013180: {str = 0x1534ac013120 "t", length = 1}, path=@0x1534ec100630: {str = 0x1534ec100650 "./test/t", length = 8}, options=<optimized out>, create_info=0x1534ec100b30, alter_info=0x1534ec100a40, create_table_mode=0, is_trans=0x1534ec1008df, key_info=0x1534ec100628, key_count=0x1534ec100624, frm=0x1534ec100640) at /test/10.6_dbg/sql/sql_table.cc:4486
      #26 0x00005609af3eb356 in mysql_create_table_no_lock (thd=thd@entry=0x1534ac000d48, ddl_log_state_create=ddl_log_state_create@entry=0x1534ec1008e0, ddl_log_state_rm=ddl_log_state_rm@entry=0x1534ec100900, db=db@entry=0x1534ac013170, table_name=table_name@entry=0x1534ac013180, create_info=create_info@entry=0x1534ec100b30, alter_info=0x1534ec100a40, is_trans=0x1534ec1008df, create_table_mode=0, table_list=0x1534ac013158) at /test/10.6_dbg/sql/sql_table.cc:4585
      #27 0x00005609af3eb738 in mysql_create_table (thd=thd@entry=0x1534ac000d48, create_table=create_table@entry=0x1534ac013158, create_info=create_info@entry=0x1534ec100b30, alter_info=alter_info@entry=0x1534ec100a40) at /test/10.6_dbg/sql/sql_table.cc:4697
      #28 0x00005609af3ed4a3 in Sql_cmd_create_table_like::execute (this=<optimized out>, thd=0x1534ac000d48) at /test/10.6_dbg/sql/sql_table.cc:11961
      #29 0x00005609af32c9c8 in mysql_execute_command (thd=thd@entry=0x1534ac000d48, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.6_dbg/sql/sql_parse.cc:6014
      #30 0x00005609af3152c9 in mysql_parse (thd=thd@entry=0x1534ac000d48, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1534ec101310) at /test/10.6_dbg/sql/sql_parse.cc:8041
      #31 0x00005609af322b75 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x1534ac000d48, packet=packet@entry=0x1534ac00acb9 "CREATE TABLE t (a INT KEY)", packet_length=packet_length@entry=26, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_class.h:1388
      #32 0x00005609af325049 in do_command (thd=0x1534ac000d48, blocking=blocking@entry=true) at /test/10.6_dbg/sql/sql_parse.cc:1409
      #33 0x00005609af46ae9b in do_handle_one_connection (connect=<optimized out>, connect@entry=0x5609b2b9d178, put_in_cache=put_in_cache@entry=true) at /test/10.6_dbg/sql/sql_connect.cc:1416
      #34 0x00005609af46b36a in handle_one_connection (arg=0x5609b2b9d178) at /test/10.6_dbg/sql/sql_connect.cc:1318
      #35 0x0000153503be8609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #36 0x00001535037d4133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Attachments

        Activity

          People

            thiru Thirunarayanan Balathandayuthapani
            ramesh Ramesh Sivaraman
            Votes:
            0 Vote for this issue
            Watchers:
            1 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.