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

Assertion failure in make_empty_rec upon CONVERT PARTITION

    XMLWordPrintable

Details

    • Not for Release Notes

    Description

      --source include/have_partition.inc
       
      CREATE TABLE t (
        f1 bit(1),
        f2 bit(1),
        f3 int,
        f4 int,
        f5 int
      ) ENGINE=MyISAM
       PARTITION BY LIST (f3) (
        PARTITION p0 VALUES IN (NULL,0),
        PARTITION p1 VALUES IN (1,2,3),
        PARTITION p2 DEFAULT
      );
      ALTER TABLE t CONVERT PARTITION p0 TO TABLE tp;
       
      DROP TABLE IF EXISTS tp, t;
      

      ce293f0bf74a44bda79f93392b5b682ae50308ae

      mariadbd: /data/bld/11.4-bug/sql/unireg.cc:1253: bool make_empty_rec(THD*, uchar*, uint, List<Create_field>&, uint, ulong): Assertion `data_offset == ((null_count + 7) / 8)' failed.
      250728 14:32:31 [ERROR] /share8t/bld/11.4-bug/sql/mariadbd got signal 6 ;
       
      #9  0x00007fb34c453eb2 in __GI___assert_fail (assertion=0x55bf860fd8b0 "data_offset == ((null_count + 7) / 8)", file=0x55bf860fd1d0 "/data/bld/11.4-bug/sql/unireg.cc", line=1253, function=0x55bf860fd8d8 "bool make_empty_rec(THD*, uchar*, uint, List<Create_field>&, uint, ulong)") at ./assert/assert.c:101
      #10 0x000055bf8531cd53 in make_empty_rec (thd=0x7fb334000dc8, buff=0x7fb33416bfb6 "\353", table_options=8, create_fields=..., reclength=14, data_offset=2) at /data/bld/11.4-bug/sql/unireg.cc:1253
      #11 0x000055bf8531a31c in build_frm_image (thd=0x7fb334000dc8, table=..., create_info=0x7fb34661b140, create_fields=..., keys=0, key_info=0x7fb334016998, db_file=0x7fb3340495a8) at /data/bld/11.4-bug/sql/unireg.cc:577
      #12 0x000055bf85283508 in mysql_write_frm (lpt=0x7fb346618a80, flags=33) at /data/bld/11.4-bug/sql/sql_table.cc:818
      #13 0x000055bf8518774e in fast_alter_partition_table (thd=0x7fb334000dc8, table=0x7fb334047e78, alter_info=0x7fb34661afd0, alter_ctx=0x7fb34661a270, create_info=0x7fb34661b140, table_list=0x7fb334015a68) at /data/bld/11.4-bug/sql/sql_partition.cc:7640
      #14 0x000055bf852a3e20 in mysql_alter_table (thd=0x7fb334000dc8, new_db=0x7fb334005b50, new_name=0x7fb334005fb0, create_info=0x7fb34661b140, table_list=0x7fb334015a68, recreate_info=0x7fb34661af90, alter_info=0x7fb34661afd0, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/bld/11.4-bug/sql/sql_table.cc:11250
      #15 0x000055bf853684b7 in Sql_cmd_alter_table::execute (this=0x7fb3340161c8, thd=0x7fb334000dc8) at /data/bld/11.4-bug/sql/sql_alter.cc:701
      #16 0x000055bf8516562a in mysql_execute_command (thd=0x7fb334000dc8, is_called_from_prepared_stmt=false) at /data/bld/11.4-bug/sql/sql_parse.cc:5874
      #17 0x000055bf8516b912 in mysql_parse (thd=0x7fb334000dc8, rawbuf=0x7fb334015960 "ALTER TABLE t CONVERT PARTITION p0 TO TABLE tp", length=46, parser_state=0x7fb34661c370) at /data/bld/11.4-bug/sql/sql_parse.cc:7897
      #18 0x000055bf85157c88 in dispatch_command (command=COM_QUERY, thd=0x7fb334000dc8, packet=0x7fb33400bd59 "ALTER TABLE t CONVERT PARTITION p0 TO TABLE tp", packet_length=46, blocking=true) at /data/bld/11.4-bug/sql/sql_parse.cc:1905
      #19 0x000055bf851565e1 in do_command (thd=0x7fb334000dc8, blocking=true) at /data/bld/11.4-bug/sql/sql_parse.cc:1418
      #20 0x000055bf8535bcdf in do_handle_one_connection (connect=0x55bf9c183008, put_in_cache=true) at /data/bld/11.4-bug/sql/sql_connect.cc:1408
      #21 0x000055bf8535ba60 in handle_one_connection (arg=0x55bf9c0c71b8) at /data/bld/11.4-bug/sql/sql_connect.cc:1320
      #22 0x000055bf858c3aba in pfs_spawn_thread (arg=0x55bf9c182b78) at /data/bld/11.4-bug/storage/perfschema/pfs.cc:2201
      #23 0x00007fb34c4a81c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #24 0x00007fb34c52885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      No obvious immediate problem on a non-debug build.

      The failure started happening after this merge into bb-11.4-release:

      commit ce293f0bf74a44bda79f93392b5b682ae50308ae
      Merge: ca91bf5d2a2 e1e5bf98fae
      Author: Sergei Golubchik
      Date:   Sun Jul 27 15:45:18 2025 +0200
       
          Merge branch '10.11' into 11.4
      

      It is a big merge, I couldn't find the exact guilty commit there, and since the test case is not applicable to 10.11 due to CONVERT PARTITION, it cannot be bisected on 10.11.

      Attachments

        Activity

          People

            serg Sergei Golubchik
            elenst Elena Stepanova
            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.