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

Assertion `(length % 4) == 0' failed in my_lengthsp_utf32 on ANALYZE TABLE

    XMLWordPrintable

Details

    Description

      Testcase is significantly offset from MDEV-28392 (and MDEV-30976); this looks to be a different bug:

      SET use_stat_tables=PREFERABLY, histogram_type=1;
      CREATE TABLE t (c ENUM ('') CHARACTER SET utf32 COLLATE utf32_spanish2_ci);
      INSERT INTO t VALUES (1);
      ANALYZE TABLE t;
      

      Leads to:

      11.2.6 e91a79945822def1452787f825e6047c6a64dbd9 (Debug)

      mariadbd: /test/11.2_dbg/strings/ctype-ucs2.c:2150: my_lengthsp_utf32: Assertion `(length % 4) == 0' failed.
      

      11.2.6 e91a79945822def1452787f825e6047c6a64dbd9 (Debug)

      Core was generated by `/test/MD090924-mariadb-11.2.6-linux-x86_64-dbg/bin/mariadbd --no-defaults --max'.
      Program terminated with signal SIGABRT, Aborted.
      Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      warning: 44	./nptl/pthread_kill.c: No such file or directory
      [Current thread is 1 (LWP 2701946)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x000014874b04526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x000014874b0288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x000014874b02881b in __assert_fail_base (fmt=0x14874b1d01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x55c3a4a9aa44 "(length % 4) == 0", file=file@entry=0x55c3a4a27018 "/test/11.2_dbg/strings/ctype-ucs2.c", line=line@entry=2150, function=function@entry=0x55c3a4ea2d70 <__PRETTY_FUNCTION__.41> "my_lengthsp_utf32") at ./assert/assert.c:94
      #6  0x000014874b03b507 in __assert_fail (assertion=assertion@entry=0x55c3a4a9aa44 "(length % 4) == 0", file=file@entry=0x55c3a4a27018 "/test/11.2_dbg/strings/ctype-ucs2.c", line=line@entry=2150, function=function@entry=0x55c3a4ea2d70 <__PRETTY_FUNCTION__.41> "my_lengthsp_utf32") at ./assert/assert.c:103
      #7  0x000055c3a46bb5df in my_lengthsp_utf32 (cs=<optimized out>, ptr=<optimized out>, length=<optimized out>)at /test/11.2_dbg/strings/ctype-ucs2.c:2150
      #8  0x000055c3a46b173b in my_ci_lengthsp (length=<optimized out>, str=0x1486e80814b9 "\001", '\245' <repeats 14 times>, "\350\024\b\350\206\024", cs=0x55c3a5336be0 <my_charset_utf32_spanish2_uca_ci>)at /test/11.2_dbg/include/m_ctype.h:1148
      #9  my_uca_strnxfrm_utf32 (cs=0x55c3a5336be0 <my_charset_utf32_spanish2_uca_ci>, dst=0x148748967020 "\370o\226H\207\024", dstlen=<optimized out>, nweights=8, src=0x1486e80814b9 "\001", '\245' <repeats 14 times>, "\350\024\b\350\206\024", srclen=<optimized out>, flags=64)at /test/11.2_dbg/strings/ctype-uca.inl:869
      #10 0x000055c3a3e74677 in charset_info_st::strnxfrm (srclen=1561480448, src=0x148748967020 "\370o\226H\207\024", dstlen=8, dst=0x148748967020 "\370o\226H\207\024", this=0x55c3a5336be0 <my_charset_utf32_spanish2_uca_ci>)at /test/11.2_dbg/include/m_ctype.h:1047
      #11 pos_in_interval_for_string (cset=0x55c3a5336be0 <my_charset_utf32_spanish2_uca_ci>, midp_val=midp_val@entry=0x1486e80814b9 "\001", '\245' <repeats 14 times>, "\350\024\b\350\206\024", midp_len=midp_len@entry=1, min_val=min_val@entry=0x1486e80142e1 "\001", min_len=min_len@entry=1, max_val=max_val@entry=0x1486e80142e9 "\001", max_len=1)at /test/11.2_dbg/sql/field.cc:1252
      #12 0x000055c3a3e7487c in Field::pos_in_interval_val_str (this=this@entry=0x1486e80814e8, min=min@entry=0x1486e80142f0, max=max@entry=0x1486e80143d8, data_offset=<optimized out>)at /test/11.2_dbg/sql/field.cc:1234
      #13 0x000055c3a3cefe37 in Field_str::pos_in_interval (this=0x1486e80814e8, min=0x1486e80142f0, max=0x1486e80143d8) at /test/11.2_dbg/sql/field.h:2199
      #14 0x000055c3a3c63bbe in Histogram_binary_builder::next (this=0x1486e8014c78, elem=<optimized out>, elem_cnt=<optimized out>)at /test/11.2_dbg/sql/sql_statistics.cc:1690
      #15 0x000055c3a3c63825 in histogram_build_walk (elem=<optimized out>, elem_cnt=<optimized out>, arg=<optimized out>)at /test/11.2_dbg/sql/sql_statistics.cc:1736
      #16 0x000055c3a4680daa in tree_walk_left_root_right (tree=0x1486e80146a8, element=0x1486e80dc5f0, action=0x55c3a3c6380d <histogram_build_walk(void*, element_count, void*)>, argument=0x1486e8014c78) at /test/11.2_dbg/mysys/tree.c:590
      #17 0x000055c3a4681df2 in tree_walk (tree=<optimized out>, action=<optimized out>, argument=<optimized out>, visit=<optimized out>)at /test/11.2_dbg/mysys/tree.c:576
      #18 0x000055c3a3cdcba2 in Unique::walk (this=0x1486e80144f0, table=<optimized out>, action=action@entry=0x55c3a3c6380d <histogram_build_walk(void*, element_count, void*)>, walk_action_arg=walk_action_arg@entry=0x1486e8014c78)at /test/11.2_dbg/sql/uniques.cc:657
      #19 0x000055c3a3c65e0b in Count_distinct_field::walk_tree_with_histogram (rows=<optimized out>, this=0x1486e80144c0)at /test/11.2_dbg/sql/sql_statistics.cc:1844
      #20 Column_statistics_collected::finish (this=0x1486e8014158, mem_root=0x1486e8006f10, rows=rows@entry=1, sample_fraction=sample_fraction@entry=1)at /test/11.2_dbg/sql/sql_statistics.cc:2531
      #21 0x000055c3a3c5a950 in collect_statistics_for_table (thd=thd@entry=0x1486e8000d58, table=table@entry=0x1486e8081068)at /test/11.2_dbg/sql/sql_statistics.cc:2844
      #22 0x000055c3a3d17ae7 in mysql_admin_table (thd=thd@entry=0x1486e8000d58, tables=tables@entry=0x1486e80136f8, check_opt=check_opt@entry=0x1486e80065d8, operator_name=operator_name@entry=0x55c3a5124910 <msg_analyze>, lock_type=lock_type@entry=TL_READ_NO_INSERT, org_open_for_modify=org_open_for_modify@entry=true, repair_table_use_frm=<optimized out>, extra_open_options=<optimized out>, prepare_func=<optimized out>, operator_func=<optimized out>, view_operator_func=<optimized out>, is_cmd_replicated=<optimized out>)at /test/11.2_dbg/sql/sql_admin.cc:1070
      #23 0x000055c3a3d19776 in Sql_cmd_analyze_table::execute (this=<optimized out>, thd=0x1486e8000d58)at /test/11.2_dbg/sql/sql_admin.cc:1566
      #24 0x000055c3a3b93427 in mysql_execute_command (thd=thd@entry=0x1486e8000d58, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false)at /test/11.2_dbg/sql/sql_parse.cc:5883
      #25 0x000055c3a3b94d26 in mysql_parse (thd=thd@entry=0x1486e8000d58, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x1487489682a0)at /test/11.2_dbg/sql/sql_parse.cc:7929
      #26 0x000055c3a3b971bd in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x1486e8000d58, packet=packet@entry=0x1486e800b309 "", packet_length=packet_length@entry=15, blocking=blocking@entry=true)at /test/11.2_dbg/sql/sql_class.h:248
      #27 0x000055c3a3b993e3 in do_command (thd=0x1486e8000d58, blocking=blocking@entry=true) at /test/11.2_dbg/sql/sql_parse.cc:1407
      #28 0x000055c3a3d0535c in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55c3a6636fa8, put_in_cache=put_in_cache@entry=true)at /test/11.2_dbg/sql/sql_connect.cc:1439
      #29 0x000055c3a3d0565c in handle_one_connection (arg=arg@entry=0x55c3a6636fa8)at /test/11.2_dbg/sql/sql_connect.cc:1341
      #30 0x000055c3a414c62c in pfs_spawn_thread (arg=0x55c3a66060f8)at /test/11.2_dbg/storage/perfschema/pfs.cc:2201
      #31 0x000014874b09ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #32 0x000014874b129c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Bug confirmed present in:
      MariaDB: 10.5.27 (dbg), 10.6.20 (dbg), 10.11.10 (dbg), 11.1.7 (dbg), 11.2.6 (dbg), 11.4.4 (dbg), 11.6.2 (dbg), 11.7.0 (dbg)

      Bug (or feature/syntax) confirmed not present in:
      MariaDB: 10.5.27 (opt), 10.6.20 (opt), 10.11.10 (opt), 11.1.7 (opt), 11.2.6 (opt), 11.4.4 (opt), 11.6.2 (opt), 11.7.0 (opt)

      Testcase is MTR and CLI compatible.

      Attachments

        Issue Links

          Activity

            People

              bar Alexander Barkov
              Roel Roel Van de Paar
              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.