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

Assertion `(length % 4) == 0' failed in my_lengthsp_utf32 on ALTER TABLE, SELECT and INSERT

Details

    Description

      USE test;
      SET COLLATION_CONNECTION=utf32_myanmar_ci, CHARACTER_SET_CLIENT=binary;
      CREATE TABLE t (a CHAR(1));
      ALTER TABLE t CHANGE a a ENUM('a','a') CHARACTER SET utf32;
      

      Leads to:

      10.5.5 30e7a0a866dce530d8328c6d614e48d39a264f9b (Debug)

      mysqld: /test/10.5_dbg/strings/ctype-ucs2.c:2197: my_lengthsp_utf32: Assertion `(length % 4) == 0' failed.
      

      10.5.5 30e7a0a866dce530d8328c6d614e48d39a264f9b (Debug)

      Core was generated by `/test/MD140720-mariadb-10.5.5-linux-x86_64-dbg/bin/mysqld --no-defaults --core-'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
          at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
      [Current thread is 1 (Thread 0x1482c7848700 (LWP 1820126))]
      (gdb) bt
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
      #1  0x000055b87dda34d7 in my_write_core (sig=sig@entry=6) at /test/10.5_dbg/mysys/stacktrace.c:518
      #2  0x000055b87d55d9ba in handle_fatal_signal (sig=6) at /test/10.5_dbg/sql/signal_handler.cc:330
      #3  <signal handler called>
      #4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
      #5  0x00001482c5ade8b1 in __GI_abort () at abort.c:79
      #6  0x00001482c5ace42a in __assert_fail_base (fmt=0x1482c5c55a38 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x55b87e488872 "(length % 4) == 0", file=file@entry=0x55b87e488800 "/test/10.5_dbg/strings/ctype-ucs2.c", line=line@entry=2197, function=function@entry=0x55b87e488db0 <__PRETTY_FUNCTION__.15905> "my_lengthsp_utf32") at assert.c:92
      #7  0x00001482c5ace4a2 in __GI___assert_fail (assertion=assertion@entry=0x55b87e488872 "(length % 4) == 0", file=file@entry=0x55b87e488800 "/test/10.5_dbg/strings/ctype-ucs2.c", line=line@entry=2197, function=function@entry=0x55b87e488db0 <__PRETTY_FUNCTION__.15905> "my_lengthsp_utf32") at assert.c:101
      #8  0x000055b87ddddc15 in my_lengthsp_utf32 (cs=<optimized out>, ptr=<optimized out>, length=<optimized out>) at /test/10.5_dbg/strings/ctype-ucs2.c:2197
      #9  0x000055b87d53e9a8 in charset_info_st::lengthsp (length=<optimized out>, str=0x1482a34749a8 "a", this=<optimized out>) at /test/10.5_dbg/include/m_ctype.h:622
      #10 Column_definition::create_interval_from_interval_list (this=this@entry=0x1482a3474a58, mem_root=mem_root@entry=0x1482a341ab50, reuse_interval_list_values=reuse_interval_list_values@entry=true) at /test/10.5_dbg/sql/field.cc:10060
      #11 0x000055b87d53ed61 in Column_definition::prepare_interval_field (this=this@entry=0x1482a3474a58, mem_root=mem_root@entry=0x1482a341ab50, reuse_interval_list_values=reuse_interval_list_values@entry=true) at /test/10.5_dbg/sql/field.cc:10117
      #12 0x000055b87d3778f2 in Column_definition::prepare_stage1_typelib (this=0x1482a3474a58, thd=0x1482a3415088, mem_root=0x1482a341ab50, file=0x1482a3474d38, table_flags=<optimized out>) at /test/10.5_dbg/sql/sql_table.cc:3232
      #13 0x000055b87d484cb8 in Type_handler_typelib::Column_definition_prepare_stage1 (this=<optimized out>, thd=<optimized out>, mem_root=<optimized out>, def=<optimized out>, file=<optimized out>, table_flags=<optimized out>) at /test/10.5_dbg/sql/sql_type.cc:2991
      #14 0x000055b87d3775ab in Column_definition::prepare_stage1 (this=this@entry=0x1482a3474a58, thd=thd@entry=0x1482a3415088, mem_root=<optimized out>, file=file@entry=0x1482a3474d38, table_flags=<optimized out>) at /test/10.5_dbg/sql/sql_table.cc:3295
      #15 0x000055b87d37e9d8 in mysql_prepare_create_table (thd=thd@entry=0x1482a3415088, create_info=create_info@entry=0x1482c7846220, alter_info=alter_info@entry=0x1482c7846150, db_options=db_options@entry=0x1482c7843828, file=file@entry=0x1482a3474d38, key_info_buffer=key_info_buffer@entry=0x1482c78441d0, key_count=0x1482c78441c8, create_table_mode=-2) at /test/10.5_dbg/sql/sql_table.cc:3635
      #16 0x000055b87d382500 in mysql_create_frm_image (thd=thd@entry=0x1482a3415088, db=@0x1482c7845640: {str = 0x1482a3474898 "test", length = 4}, table_name=@0x1482c7845650: {str = 0x1482a3474190 "t", length = 1}, create_info=create_info@entry=0x1482c7846220, alter_info=alter_info@entry=0x1482c7846150, create_table_mode=create_table_mode@entry=-2, key_info=0x1482c78441d0, key_count=0x1482c78441c8, frm=0x1482c78441e0) at /test/10.5_dbg/sql/sql_table.cc:5015
      #17 0x000055b87d382f3d in create_table_impl (thd=thd@entry=0x1482a3415088, orig_db=@0x1482c7845640: {str = 0x1482a3474898 "test", length = 4}, orig_table_name=@0x1482c7845650: {str = 0x1482a3474190 "t", length = 1}, db=@0x1482c7845670: {str = 0x1482a3474898 "test", length = 4}, table_name=@0x1482c78456a0: {str = 0x1482c78459da "#sql-alter-1bc5bd-4", length = 19}, path=path@entry=0x1482c7845e9d "./test/#sql-alter-1bc5bd-4", options={m_options = DDL_options_st::OPT_NONE}, create_info=0x1482c7846220, alter_info=0x1482c7846150, create_table_mode=-2, is_trans=0x0, key_info=0x1482c78441d0, key_count=0x1482c78441c8, frm=0x1482c78441e0) at /test/10.5_dbg/sql/sql_table.cc:5271
      #18 0x000055b87d38985b in mysql_alter_table (thd=thd@entry=0x1482a3415088, new_db=new_db@entry=0x1482a3419948, new_name=new_name@entry=0x1482a3419d50, create_info=create_info@entry=0x1482c7846220, table_list=<optimized out>, table_list@entry=0x1482a34741c8, alter_info=alter_info@entry=0x1482c7846150, order_num=0, order=0x0, ignore=false, if_exists=false) at /test/10.5_dbg/sql/sql_table.cc:10435
      #19 0x000055b87d40da6a in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x1482a3415088) at /test/10.5_dbg/sql/sql_alter.cc:532
      #20 0x000055b87d2b6e4a in mysql_execute_command (thd=thd@entry=0x1482a3415088) at /test/10.5_dbg/sql/sql_parse.cc:5951
      #21 0x000055b87d2be752 in mysql_parse (thd=thd@entry=0x1482a3415088, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1482c7847350, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:7993
      #22 0x000055b87d2ab204 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x1482a3415088, packet=packet@entry=0x1482a3467089 "ALTER TABLE t CHANGE a a ENUM('a','a') CHARACTER SET utf32", packet_length=packet_length@entry=58, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /test/10.5_dbg/sql/sql_parse.cc:1866
      #23 0x000055b87d2a99de in do_command (thd=0x1482a3415088) at /test/10.5_dbg/sql/sql_parse.cc:1347
      #24 0x000055b87d405c3b in do_handle_one_connection (connect=<optimized out>, connect@entry=0x1482a68c7808, put_in_cache=put_in_cache@entry=true) at /test/10.5_dbg/sql/sql_connect.cc:1411
      #25 0x000055b87d406357 in handle_one_connection (arg=arg@entry=0x1482a68c7808) at /test/10.5_dbg/sql/sql_connect.cc:1313
      #26 0x000055b87d869ca8 in pfs_spawn_thread (arg=0x1482c4446508) at /test/10.5_dbg/storage/perfschema/pfs.cc:2201
      #27 0x00001482c67c16db in start_thread (arg=0x1482c7848700) at pthread_create.c:463
      #28 0x00001482c5bbfa3f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Bug confirmed present in:
      MariaDB: 10.1.46 (dbg), 10.2.33 (dbg), 10.3.24 (dbg), 10.4.14 (dbg), 10.5.5 (dbg)

      Bug confirmed not present in:
      MariaDB: 10.1.46 (opt), 10.2.33 (opt), 10.3.24 (opt), 10.4.14 (opt), 10.5.5 (opt)
      MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.47 (dbg), 5.6.47 (opt), 5.7.29 (dbg), 5.7.29 (opt), 8.0.19 (dbg), 8.0.19 (opt)

      Attachments

        Issue Links

          Activity

            Another iteration.

            SET sql_mode='';
            CREATE TABLE t (HOST CHAR DEFAULT '%',USER CHAR DEFAULT '%',ROLE CHAR DEFAULT '%',ENABLED ENUM ('a','a') DEFAULT 'a',HISTORY ENUM ('a','a') DEFAULT 'a') ROW_FORMAT=DYNAMIC COLLATE=utf32_unicode_nopad_ci ENGINE=InnoDB;
            INSERT INTO t SELECT * FROM t;
            

            Leads to:

            10.9.0 b5852ffbeebc3000982988383daeefb0549e058a (Debug)

            mysqld: /test/10.9_dbg/strings/ctype-ucs2.c:2226: my_lengthsp_utf32: Assertion `(length % 4) == 0' failed.
            

            10.9.0 b5852ffbeebc3000982988383daeefb0549e058a (Debug)

            Core was generated by `/test/MD140222-mariadb-10.9.0-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 0x14d33c07c700 (LWP 1443699))]
            (gdb) bt
            #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
            #1  0x000014d33f639859 in __GI_abort () at abort.c:79
            #2  0x000014d33f639729 in __assert_fail_base (fmt=0x14d33f7cf588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x5603b8011c9a "(length % 4) == 0", file=0x5603b8011c28 "/test/10.9_dbg/strings/ctype-ucs2.c", line=2226, function=<optimized out>) at assert.c:92
            #3  0x000014d33f64af36 in __GI___assert_fail (assertion=assertion@entry=0x5603b8011c9a "(length % 4) == 0", file=file@entry=0x5603b8011c28 "/test/10.9_dbg/strings/ctype-ucs2.c", line=line@entry=2226, function=function@entry=0x5603b8012390 <__PRETTY_FUNCTION__.18380> "my_lengthsp_utf32") at assert.c:101
            #4  0x00005603b79ad862 in my_lengthsp_utf32 (cs=<optimized out>, ptr=<optimized out>, length=<optimized out>) at /test/10.9_dbg/strings/ctype-ucs2.c:2226
            #5  0x00005603b7133f36 in charset_info_st::lengthsp (length=2, str=0x14d2a402113a "", this=<optimized out>) at /test/10.9_dbg/include/m_ctype.h:699
            #6  Field_enum::store (this=this@entry=0x14d2a40784e0, from=0x14d2a402113a "", length=2, cs=0x5603b84436c0 <my_charset_utf32_unicode_nopad_ci>) at /test/10.9_dbg/sql/field.cc:9224
            #7  0x00005603b6fb095d in Field::save_in_field_str (this=this@entry=0x14d2a402dd28, to=to@entry=0x14d2a40784e0) at /test/10.9_dbg/sql/sql_string.h:278
            #8  0x00005603b71470c7 in Field_enum::save_in_field (this=0x14d2a402dd28, to=0x14d2a40784e0) at /test/10.9_dbg/sql/field.h:4786
            #9  0x00005603b7147592 in Field_enum::store_field (this=0x14d2a40784e0, from=0x14d2a402dd28) at /test/10.9_dbg/sql/field.h:4780
            #10 0x00005603b7147972 in field_conv_incompatible (to=to@entry=0x14d2a40784e0, from=from@entry=0x14d2a402dd28) at /test/10.9_dbg/sql/field_conv.cc:850
            #11 0x00005603b7148da1 in field_conv (to=to@entry=0x14d2a40784e0, from=from@entry=0x14d2a402dd28) at /test/10.9_dbg/sql/field_conv.cc:861
            #12 0x00005603b6eba09d in Create_tmp_table::finalize (this=this@entry=0x14d33c07a8a0, thd=thd@entry=0x14d2a4000db8, table=table@entry=0x14d2a4077350, param=param@entry=0x14d2a4073660, do_not_open=do_not_open@entry=true, keep_row_order=keep_row_order@entry=false) at /test/10.9_dbg/sql/sql_select.cc:19275
            #13 0x00005603b6ebacea in create_tmp_table (thd=0x14d2a4000db8, param=0x14d2a4073660, fields=@0x14d2a4015fa8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14d2a4014b38, last = 0x14d2a4014b38, elements = 5}, <No data fields>}, group=group@entry=0x0, distinct=distinct@entry=false, save_sum_fields=save_sum_fields@entry=false, select_options=2202244877056, rows_limit=18446744073709551615, table_alias=0x5603b8271ba0 <empty_clex_str>, do_not_open=true, keep_row_order=false) at /test/10.9_dbg/sql/sql_select.cc:19643
            #14 0x00005603b6ecae91 in JOIN::create_postjoin_aggr_table (this=this@entry=0x14d2a4015c40, tab=tab@entry=0x14d2a4017978, table_fields=table_fields@entry=0x14d2a4015fa8, table_group=0x0, save_sum_fields=<optimized out>, distinct=distinct@entry=false, keep_row_order=false) at /test/10.9_dbg/sql/sql_select.cc:4026
            #15 0x00005603b6ecc0ce in JOIN::make_aggr_tables_info (this=this@entry=0x14d2a4015c40) at /test/10.9_dbg/sql/sql_select.cc:3605
            #16 0x00005603b6edf2cd in JOIN::optimize_stage2 (this=this@entry=0x14d2a4015c40) at /test/10.9_dbg/sql/sql_select.cc:3233
            #17 0x00005603b6ee0ee8 in JOIN::optimize_inner (this=this@entry=0x14d2a4015c40) at /test/10.9_dbg/sql/sql_select.cc:2492
            #18 0x00005603b6ee11dc in JOIN::optimize (this=this@entry=0x14d2a4015c40) at /test/10.9_dbg/sql/sql_select.cc:1808
            #19 0x00005603b6ee1880 in mysql_select (thd=thd@entry=0x14d2a4000db8, tables=0x14d2a4014b80, fields=@0x14d2a4014848: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14d2a4014b38, last = 0x14d2a4016818, elements = 5}, <No data fields>}, conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2202244745984, result=0x14d2a4015b80, unit=0x14d2a40051c8, select_lex=0x14d2a40145a8) at /test/10.9_dbg/sql/sql_select.cc:4993
            #20 0x00005603b6ee1b84 in handle_select (thd=thd@entry=0x14d2a4000db8, lex=lex@entry=0x14d2a40050f0, result=result@entry=0x14d2a4015b80, setup_tables_done_option=setup_tables_done_option@entry=1073741824) at /test/10.9_dbg/sql/sql_select.cc:543
            #21 0x00005603b6e500c4 in mysql_execute_command (thd=thd@entry=0x14d2a4000db8, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.9_dbg/sql/sql_parse.cc:4708
            #22 0x00005603b6e3a315 in mysql_parse (thd=thd@entry=0x14d2a4000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x14d33c07b400) at /test/10.9_dbg/sql/sql_parse.cc:8027
            #23 0x00005603b6e48fb1 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14d2a4000db8, packet=packet@entry=0x14d2a400b889 "INSERT INTO t SELECT * FROM t", packet_length=packet_length@entry=29, blocking=blocking@entry=true) at /test/10.9_dbg/sql/sql_class.h:1362
            #24 0x00005603b6e4c3f8 in do_command (thd=0x14d2a4000db8, blocking=blocking@entry=true) at /test/10.9_dbg/sql/sql_parse.cc:1402
            #25 0x00005603b6fc6fc4 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x5603b9aa1ce8, put_in_cache=put_in_cache@entry=true) at /test/10.9_dbg/sql/sql_connect.cc:1418
            #26 0x00005603b6fc75c9 in handle_one_connection (arg=arg@entry=0x5603b9aa1ce8) at /test/10.9_dbg/sql/sql_connect.cc:1312
            #27 0x00005603b744dd67 in pfs_spawn_thread (arg=0x5603b99e4768) at /test/10.9_dbg/storage/perfschema/pfs.cc:2201
            #28 0x000014d33fb48609 in start_thread (arg=<optimized out>) at pthread_create.c:477
            #29 0x000014d33f736293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
            

            Bug confirmed present in:
            MariaDB: 10.3.33 (dbg), 10.4.23 (dbg), 10.5.14 (dbg), 10.6.6 (dbg), 10.7.2 (dbg), 10.8.1 (dbg), 10.9.0 (dbg)

            Bug (or feature/syntax) confirmed not present in:
            MariaDB: 10.2.42 (dbg), 10.2.42 (opt), 10.3.33 (opt), 10.4.23 (opt), 10.5.14 (opt), 10.6.6 (opt), 10.7.2 (opt), 10.8.1 (opt), 10.9.0 (opt)
            MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.36 (dbg), 5.7.36 (opt), 8.0.27 (dbg), 8.0.27 (opt)

            Roel Roel Van de Paar added a comment - Another iteration. SET sql_mode= '' ; CREATE TABLE t (HOST CHAR DEFAULT '%' , USER CHAR DEFAULT '%' ,ROLE CHAR DEFAULT '%' ,ENABLED ENUM ( 'a' , 'a' ) DEFAULT 'a' ,HISTORY ENUM ( 'a' , 'a' ) DEFAULT 'a' ) ROW_FORMAT= DYNAMIC COLLATE =utf32_unicode_nopad_ci ENGINE=InnoDB; INSERT INTO t SELECT * FROM t; Leads to: 10.9.0 b5852ffbeebc3000982988383daeefb0549e058a (Debug) mysqld: /test/10.9_dbg/strings/ctype-ucs2.c:2226: my_lengthsp_utf32: Assertion `(length % 4) == 0' failed. 10.9.0 b5852ffbeebc3000982988383daeefb0549e058a (Debug) Core was generated by `/test/MD140222-mariadb-10.9.0-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 0x14d33c07c700 (LWP 1443699))] (gdb) bt #0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50 #1 0x000014d33f639859 in __GI_abort () at abort.c:79 #2 0x000014d33f639729 in __assert_fail_base (fmt=0x14d33f7cf588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x5603b8011c9a "(length % 4) == 0", file=0x5603b8011c28 "/test/10.9_dbg/strings/ctype-ucs2.c", line=2226, function=<optimized out>) at assert.c:92 #3 0x000014d33f64af36 in __GI___assert_fail (assertion=assertion@entry=0x5603b8011c9a "(length % 4) == 0", file=file@entry=0x5603b8011c28 "/test/10.9_dbg/strings/ctype-ucs2.c", line=line@entry=2226, function=function@entry=0x5603b8012390 <__PRETTY_FUNCTION__.18380> "my_lengthsp_utf32") at assert.c:101 #4 0x00005603b79ad862 in my_lengthsp_utf32 (cs=<optimized out>, ptr=<optimized out>, length=<optimized out>) at /test/10.9_dbg/strings/ctype-ucs2.c:2226 #5 0x00005603b7133f36 in charset_info_st::lengthsp (length=2, str=0x14d2a402113a "", this=<optimized out>) at /test/10.9_dbg/include/m_ctype.h:699 #6 Field_enum::store (this=this@entry=0x14d2a40784e0, from=0x14d2a402113a "", length=2, cs=0x5603b84436c0 <my_charset_utf32_unicode_nopad_ci>) at /test/10.9_dbg/sql/field.cc:9224 #7 0x00005603b6fb095d in Field::save_in_field_str (this=this@entry=0x14d2a402dd28, to=to@entry=0x14d2a40784e0) at /test/10.9_dbg/sql/sql_string.h:278 #8 0x00005603b71470c7 in Field_enum::save_in_field (this=0x14d2a402dd28, to=0x14d2a40784e0) at /test/10.9_dbg/sql/field.h:4786 #9 0x00005603b7147592 in Field_enum::store_field (this=0x14d2a40784e0, from=0x14d2a402dd28) at /test/10.9_dbg/sql/field.h:4780 #10 0x00005603b7147972 in field_conv_incompatible (to=to@entry=0x14d2a40784e0, from=from@entry=0x14d2a402dd28) at /test/10.9_dbg/sql/field_conv.cc:850 #11 0x00005603b7148da1 in field_conv (to=to@entry=0x14d2a40784e0, from=from@entry=0x14d2a402dd28) at /test/10.9_dbg/sql/field_conv.cc:861 #12 0x00005603b6eba09d in Create_tmp_table::finalize (this=this@entry=0x14d33c07a8a0, thd=thd@entry=0x14d2a4000db8, table=table@entry=0x14d2a4077350, param=param@entry=0x14d2a4073660, do_not_open=do_not_open@entry=true, keep_row_order=keep_row_order@entry=false) at /test/10.9_dbg/sql/sql_select.cc:19275 #13 0x00005603b6ebacea in create_tmp_table (thd=0x14d2a4000db8, param=0x14d2a4073660, fields=@0x14d2a4015fa8: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14d2a4014b38, last = 0x14d2a4014b38, elements = 5}, <No data fields>}, group=group@entry=0x0, distinct=distinct@entry=false, save_sum_fields=save_sum_fields@entry=false, select_options=2202244877056, rows_limit=18446744073709551615, table_alias=0x5603b8271ba0 <empty_clex_str>, do_not_open=true, keep_row_order=false) at /test/10.9_dbg/sql/sql_select.cc:19643 #14 0x00005603b6ecae91 in JOIN::create_postjoin_aggr_table (this=this@entry=0x14d2a4015c40, tab=tab@entry=0x14d2a4017978, table_fields=table_fields@entry=0x14d2a4015fa8, table_group=0x0, save_sum_fields=<optimized out>, distinct=distinct@entry=false, keep_row_order=false) at /test/10.9_dbg/sql/sql_select.cc:4026 #15 0x00005603b6ecc0ce in JOIN::make_aggr_tables_info (this=this@entry=0x14d2a4015c40) at /test/10.9_dbg/sql/sql_select.cc:3605 #16 0x00005603b6edf2cd in JOIN::optimize_stage2 (this=this@entry=0x14d2a4015c40) at /test/10.9_dbg/sql/sql_select.cc:3233 #17 0x00005603b6ee0ee8 in JOIN::optimize_inner (this=this@entry=0x14d2a4015c40) at /test/10.9_dbg/sql/sql_select.cc:2492 #18 0x00005603b6ee11dc in JOIN::optimize (this=this@entry=0x14d2a4015c40) at /test/10.9_dbg/sql/sql_select.cc:1808 #19 0x00005603b6ee1880 in mysql_select (thd=thd@entry=0x14d2a4000db8, tables=0x14d2a4014b80, fields=@0x14d2a4014848: {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x14d2a4014b38, last = 0x14d2a4016818, elements = 5}, <No data fields>}, conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2202244745984, result=0x14d2a4015b80, unit=0x14d2a40051c8, select_lex=0x14d2a40145a8) at /test/10.9_dbg/sql/sql_select.cc:4993 #20 0x00005603b6ee1b84 in handle_select (thd=thd@entry=0x14d2a4000db8, lex=lex@entry=0x14d2a40050f0, result=result@entry=0x14d2a4015b80, setup_tables_done_option=setup_tables_done_option@entry=1073741824) at /test/10.9_dbg/sql/sql_select.cc:543 #21 0x00005603b6e500c4 in mysql_execute_command (thd=thd@entry=0x14d2a4000db8, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /test/10.9_dbg/sql/sql_parse.cc:4708 #22 0x00005603b6e3a315 in mysql_parse (thd=thd@entry=0x14d2a4000db8, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x14d33c07b400) at /test/10.9_dbg/sql/sql_parse.cc:8027 #23 0x00005603b6e48fb1 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14d2a4000db8, packet=packet@entry=0x14d2a400b889 "INSERT INTO t SELECT * FROM t", packet_length=packet_length@entry=29, blocking=blocking@entry=true) at /test/10.9_dbg/sql/sql_class.h:1362 #24 0x00005603b6e4c3f8 in do_command (thd=0x14d2a4000db8, blocking=blocking@entry=true) at /test/10.9_dbg/sql/sql_parse.cc:1402 #25 0x00005603b6fc6fc4 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x5603b9aa1ce8, put_in_cache=put_in_cache@entry=true) at /test/10.9_dbg/sql/sql_connect.cc:1418 #26 0x00005603b6fc75c9 in handle_one_connection (arg=arg@entry=0x5603b9aa1ce8) at /test/10.9_dbg/sql/sql_connect.cc:1312 #27 0x00005603b744dd67 in pfs_spawn_thread (arg=0x5603b99e4768) at /test/10.9_dbg/storage/perfschema/pfs.cc:2201 #28 0x000014d33fb48609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #29 0x000014d33f736293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Bug confirmed present in: MariaDB: 10.3.33 (dbg), 10.4.23 (dbg), 10.5.14 (dbg), 10.6.6 (dbg), 10.7.2 (dbg), 10.8.1 (dbg), 10.9.0 (dbg) Bug (or feature/syntax) confirmed not present in: MariaDB: 10.2.42 (dbg), 10.2.42 (opt), 10.3.33 (opt), 10.4.23 (opt), 10.5.14 (opt), 10.6.6 (opt), 10.7.2 (opt), 10.8.1 (opt), 10.9.0 (opt) MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.36 (dbg), 5.7.36 (opt), 8.0.27 (dbg), 8.0.27 (opt)

            All UniqueID's seen thus far

            (length % 4) == 0|SIGABRT|my_lengthsp_utf32|charset_info_st::lengthsp|Column_definition::create_interval_from_interval_list|Column_definition::prepare_interval_field
            (length % 4) == 0|SIGABRT|my_lengthsp_utf32|my_ci_lengthsp|my_uca_strnxfrm_utf32|charset_info_st::strnxfrm
            (length % 4) == 0|SIGABRT|my_lengthsp_utf32|my_uca_strnxfrm_utf32|Type_handler_string_result::make_sort_key|make_sortkey
            (length % 4) == 0|SIGABRT|my_lengthsp_utf32|Field_enum::store|Field::save_in_field_str|Field_enum::save_in_field
            (length % 4) == 0|SIGABRT|my_lengthsp_utf32|charset_info_st::lengthsp|Field_enum::store|Field::save_in_field_str
            

            Roel Roel Van de Paar added a comment - All UniqueID's seen thus far (length % 4) == 0|SIGABRT|my_lengthsp_utf32|charset_info_st::lengthsp|Column_definition::create_interval_from_interval_list|Column_definition::prepare_interval_field (length % 4) == 0|SIGABRT|my_lengthsp_utf32|my_ci_lengthsp|my_uca_strnxfrm_utf32|charset_info_st::strnxfrm (length % 4) == 0|SIGABRT|my_lengthsp_utf32|my_uca_strnxfrm_utf32|Type_handler_string_result::make_sort_key|make_sortkey (length % 4) == 0|SIGABRT|my_lengthsp_utf32|Field_enum::store|Field::save_in_field_str|Field_enum::save_in_field (length % 4) == 0|SIGABRT|my_lengthsp_utf32|charset_info_st::lengthsp|Field_enum::store|Field::save_in_field_str

            bar A fix for this ticket would be very appreciated, thank you!

            Roel Roel Van de Paar added a comment - bar A fix for this ticket would be very appreciated, thank you!

            The crash is repeatable with utf32_general_ci instead of utf32_myanmar_ci:

            DROP TABLE IF EXISTS t1;
            CREATE TABLE t1 (a CHAR(1));
            SET COLLATION_CONNECTION=utf32_general_ci, CHARACTER_SET_CLIENT=binary;
            ALTER TABLE t1 CHANGE a a ENUM('a','a') CHARACTER SET utf32;
            

            bar Alexander Barkov added a comment - The crash is repeatable with utf32_general_ci instead of utf32_myanmar_ci: DROP TABLE IF EXISTS t1; CREATE TABLE t1 (a CHAR (1)); SET COLLATION_CONNECTION=utf32_general_ci, CHARACTER_SET_CLIENT= binary ; ALTER TABLE t1 CHANGE a a ENUM( 'a' , 'a' ) CHARACTER SET utf32;

            This problem:

            SET sql_mode='';
            CREATE TABLE t (HOST CHAR DEFAULT '%',USER CHAR DEFAULT '%',ROLE CHAR DEFAULT '%',ENABLED ENUM ('a','a') DEFAULT 'a',HISTORY ENUM ('a','a') DEFAULT 'a') ROW_FORMAT=DYNAMIC COLLATE=utf32_unicode_nopad_ci ENGINE=InnoDB;
            INSERT INTO t SELECT * FROM t;
            

            is now reported as a separate issue MDEV-28062.

            bar Alexander Barkov added a comment - This problem: SET sql_mode= '' ; CREATE TABLE t (HOST CHAR DEFAULT '%' , USER CHAR DEFAULT '%' ,ROLE CHAR DEFAULT '%' ,ENABLED ENUM ( 'a' , 'a' ) DEFAULT 'a' ,HISTORY ENUM ( 'a' , 'a' ) DEFAULT 'a' ) ROW_FORMAT= DYNAMIC COLLATE =utf32_unicode_nopad_ci ENGINE=InnoDB; INSERT INTO t SELECT * FROM t; is now reported as a separate issue MDEV-28062 .

            People

              bar Alexander Barkov
              Roel Roel Van de Paar
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.