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

Assertion failure upon update on versioned partitioned table with long unique under READ COMMITTED

    XMLWordPrintable

Details

    Description

      --source include/have_partition.inc
      --source include/have_innodb.inc
       
      SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
       
      CREATE TABLE t (c TEXT, UNIQUE(c)) ENGINE=InnoDB WITH SYSTEM VERSIONING PARTITION BY SYSTEM_TIME;
      INSERT INTO t VALUES ('foo');
      UPDATE t SET c = 'bar';
       
      DROP TABLE t;
      

      10.6 49febfad21ab6131a4ca421cd08fb25107d42509

      mariadbd: /data/bld/10.6-asan-ubsan/sql/ha_partition.cc:5482: virtual void ha_partition::position(const uchar*): Assertion `bitmap_is_set(&(m_part_info->read_partitions), m_last_part)' failed.
      250728 12:37:53 [ERROR] /share8t/bld/10.6-asan-ubsan/sql/mariadbd got signal 6 ;
       
      #10 0x00007fbfeda53eb2 in __GI___assert_fail (assertion=0x5645a45560a0 "bitmap_is_set(&(m_part_info->read_partitions), m_last_part)", file=0x5645a4555400 "/data/bld/10.6-asan-ubsan/sql/ha_partition.cc", line=5482, function=0x5645a45561c0 "virtual void ha_partition::position(const uchar*)") at ./assert/assert.c:101
      #11 0x00005645a29482e7 in ha_partition::position (this=0x625000287948, record=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/ha_partition.cc:5482
      #12 0x00005645a1a4aad0 in handler::check_duplicate_long_entry_key (this=this@entry=0x625000287948, new_rec=new_rec@entry=0x625000289238 "\374\003", key_no=key_no@entry=0) at /data/bld/10.6-asan-ubsan/sql/handler.cc:7430
      #13 0x00005645a1a4df50 in handler::ha_check_long_uniques (this=this@entry=0x625000287948, old_rec=old_rec@entry=0x0, new_rec=new_rec@entry=0x625000289238 "\374\003") at /data/bld/10.6-asan-ubsan/sql/handler.cc:7534
      #14 0x00005645a1a50e1e in handler::ha_check_inserver_constraints (this=this@entry=0x625000287948, old_data=old_data@entry=0x0, new_data=new_data@entry=0x625000289238 "\374\003") at /data/bld/10.6-asan-ubsan/sql/handler.cc:7508
      #15 0x00005645a1a53f58 in handler::ha_write_row (this=this@entry=0x625000287948, buf=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/handler.cc:7772
      #16 0x00005645a06560e1 in vers_insert_history_row (table=table@entry=0x6190000afa98) at /data/bld/10.6-asan-ubsan/sql/sql_insert.cc:1879
      #17 0x00005645a0dd8424 in mysql_update (thd=thd@entry=0x62b0000bd218, table_list=<optimized out>, fields=..., values=..., conds=conds@entry=0x0, order_num=order_num@entry=0, order=<optimized out>, limit=18446744073709551615, ignore=<optimized out>, found_return=<optimized out>, updated_return=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/sql_update.cc:1151
      #18 0x00005645a0824d52 in mysql_execute_command (thd=thd@entry=0x62b0000bd218, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:4477
      #19 0x00005645a0841d04 in mysql_parse (thd=thd@entry=0x62b0000bd218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7fbfde30eac0) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:8200
      #20 0x00005645a084afd4 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62b0000bd218, packet=packet@entry=0x629000276219 "UPDATE t SET c = 'bar'", packet_length=packet_length@entry=22, blocking=blocking@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:1908
      #21 0x00005645a0857c26 in do_command (thd=thd@entry=0x62b0000bd218, blocking=blocking@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:1421
      #22 0x00005645a0fd96ee in do_handle_one_connection (connect=<optimized out>, connect@entry=0x608000018938, put_in_cache=put_in_cache@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_connect.cc:1386
      #23 0x00005645a0fda84b in handle_one_connection (arg=0x608000018938) at /data/bld/10.6-asan-ubsan/sql/sql_connect.cc:1298
      #24 0x00005645a2a0ba9b in pfs_spawn_thread (arg=0x617000007e98) at /data/bld/10.6-asan-ubsan/storage/perfschema/pfs.cc:2201
      #25 0x00007fbfedaa81c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #26 0x00007fbfedb2885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      Also reproducible on bb-10.11-release - bb-11.8-release, but not merged into 10.11+ main trees yet.

      No obvious immediate problem on a non-debug build.
      The failure started happening after this commit in 10.6:

      commit 774039e410d1ff4ff54d810157fd9071c48648be
      Author: Sergei Golubchik
      Date:   Sun Jul 20 12:33:01 2025 +0200
       
          MDEV-37268 ER_DUP_ENTRY upon REPLACE into table with unique hash under READ-COMMITTED
          
          followup for 9703c90712f3 (MDEV-37199 UNIQUE KEY USING HASH accepting duplicate records)
      

      Attachments

        Issue Links

          Activity

            People

              serg Sergei Golubchik
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              5 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.