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

Assertion `marked_for_read()' fails in Field::hash_not_null

    XMLWordPrintable

Details

    Description

      --source include/have_innodb.inc
      --source include/have_partition.inc
       
      CREATE TABLE t1 (pk INT PRIMARY KEY, a INT, KEY(a)) ENGINE=InnoDB PARTITION BY KEY(pk);
      CREATE TABLE t2 (a INT) ENGINE=InnoDB;
       
      --connect (con1,localhost,root,,)
      START TRANSACTION;
      SELECT * FROM t2;
       
      --connection default
      ALTER TABLE t1 FORCE;
       
      --connection con1
      --error ER_TABLE_DEF_CHANGED
      DELETE FROM t1 WHERE pk = 10;
      --error ER_TABLE_DEF_CHANGED
      UPDATE t1 SET a = 200 WHERE a = 100;
       
      # Cleanup
      ROLLBACK;
      DROP TABLE t1, t2;
      --disconnect con1
      

      10.4 7d89dcf1

      mysqld: /data/src/10.4/sql/field.cc:1797: virtual void Field::hash_not_null(Hasher*): Assertion `marked_for_read()' failed.
      231021  1:41:30 [ERROR] mysqld got signal 6 ;
       
      #9  0x00007ff2f0c53df2 in __GI___assert_fail (assertion=0x55df09a315e0 "marked_for_read()", file=0x55df09a30960 "/data/src/10.4/sql/field.cc", line=1797, function=0x55df09a31680 "virtual void Field::hash_not_null(Hasher*)") at ./assert/assert.c:101
      #10 0x000055df07d4f0f5 in Field::hash_not_null (this=0x6190000f5118, hasher=0x7ff2dbd89460) at /data/src/10.4/sql/field.cc:1797
      #11 0x000055df0861a0ea in Field::hash (this=0x6190000f5118, hasher=0x7ff2dbd89460) at /data/src/10.4/sql/field.h:1637
      #12 0x000055df08607106 in ha_partition::calculate_key_hash_value (field_array=0x6190000f5778) at /data/src/10.4/sql/ha_partition.cc:9938
      #13 0x000055df0828f490 in get_part_id_key (file=0x61d0002882a8, field_array=0x6190000f5778, num_parts=1, func_value=0x7ff2dbd89610) at /data/src/10.4/sql/sql_partition.cc:2995
      #14 0x000055df082940e4 in get_partition_id_key_nosub (part_info=0x61d00028a0a8, part_id=0x61d000288878, func_value=0x7ff2dbd89610) at /data/src/10.4/sql/sql_partition.cc:3786
      #15 0x000055df08295e1a in get_full_part_id_from_key (table=0x62000003f088, buf=0x6190000f50d0 "\375", key_info=0x6190000f55a8, key_spec=0x60d000036aa8, part_spec=0x61d000288878) at /data/src/10.4/sql/sql_partition.cc:4098
      #16 0x000055df0829755a in get_partition_set (table=0x62000003f088, buf=0x6190000f50d0 "\375", index=0, key_spec=0x60d000036aa8, part_spec=0x61d000288878) at /data/src/10.4/sql/sql_partition.cc:4352
      #17 0x000055df085e909f in ha_partition::multi_range_key_create_key (this=0x61d0002882a8, seq=0x7ff2dbd89b10, seq_it=0x7ff2dbd89b60) at /data/src/10.4/sql/ha_partition.cc:6272
      #18 0x000055df085eb113 in ha_partition::multi_range_read_info_const (this=0x61d0002882a8, keyno=1, seq=0x7ff2dbd89b10, seq_init_param=0x7ff2dbd89b60, n_ranges=0, bufsz=0x7ff2dbd8a240, mrr_mode=0x7ff2dbd8a230, cost=0x7ff2dbd8a350) at /data/src/10.4/sql/ha_partition.cc:6451
      #19 0x000055df081db930 in check_quick_select (param=0x7ff2dbd8ab80, idx=1, index_only=false, tree=0x6210000c9648, update_tbl_stats=true, mrr_flags=0x7ff2dbd8a230, bufsize=0x7ff2dbd8a240, cost=0x7ff2dbd8a350, is_ror_scan=0x7ff2dbd8a220) at /data/src/10.4/sql/opt_range.cc:11258
      #20 0x000055df081c21cf in get_key_scans_params (param=0x7ff2dbd8ab80, tree=0x6210000c95a0, index_read_must_be_used=false, for_range_access=true, read_time=3.5) at /data/src/10.4/sql/opt_range.cc:7467
      #21 0x000055df081a52dd in SQL_SELECT::test_quick_select (this=0x62b0000a92e0, thd=0x62b0000d9208, keys_to_use=..., prev_tables=0, limit=18446744073709551615, force_quick_range=false, ordered_output=false, remove_false_parts_of_where=false, only_single_index_range_scan=false) at /data/src/10.4/sql/opt_range.cc:2943
      #22 0x000055df07926b16 in SQL_SELECT::check_quick (this=0x62b0000a92e0, thd=0x62b0000d9208, force_quick_range=false, limit=18446744073709551615) at /data/src/10.4/sql/opt_range.h:1654
      #23 0x000055df0790e0e0 in mysql_update (thd=0x62b0000d9208, table_list=0x62b0000a8348, fields=..., values=..., conds=0x62b0000a8e38, order_num=0, order=0x0, limit=18446744073709551615, ignore=false, found_return=0x7ff2dbd8be80, updated_return=0x7ff2dbd8bea0) at /data/src/10.4/sql/sql_update.cc:583
      #24 0x000055df076435fa in mysql_execute_command (thd=0x62b0000d9208) at /data/src/10.4/sql/sql_parse.cc:4451
      #25 0x000055df0765c5bd in mysql_parse (thd=0x62b0000d9208, rawbuf=0x62b0000a8228 "UPDATE t1 SET a = 200 WHERE a = 100", length=35, parser_state=0x7ff2dbd8d860, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:8012
      #26 0x000055df0763284c in dispatch_command (command=COM_QUERY, thd=0x62b0000d9208, packet=0x6290002bc209 "UPDATE t1 SET a = 200 WHERE a = 100", packet_length=35, is_com_multi=false, is_next_command=false) at /data/src/10.4/sql/sql_parse.cc:1857
      #27 0x000055df0762f3bb in do_command (thd=0x62b0000d9208) at /data/src/10.4/sql/sql_parse.cc:1378
      #28 0x000055df07a2eee2 in do_handle_one_connection (connect=0x608000000ca8) at /data/src/10.4/sql/sql_connect.cc:1420
      #29 0x000055df07a2e7f9 in handle_one_connection (arg=0x608000000ca8) at /data/src/10.4/sql/sql_connect.cc:1324
      #30 0x000055df086a054a in pfs_spawn_thread (arg=0x615000006988) at /data/src/10.4/storage/perfschema/pfs.cc:1869
      #31 0x00007ff2f0ca7fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #32 0x00007ff2f0d285bc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      The failure started happening after this commit in 10.4.31:

      commit 8fb863e6a4fd322d704088dc39a5849c49549292
      Author: Yury Chaikou
      Date:   Fri Jul 7 10:33:47 2023 +0200
       
          MDEV-24712 get_partition_set is never executed in ha_partition::multi_range_key_create_key due to bitwise & with 0 constant
      

      No obvious immediate problem on a non-debug build.

      Attachments

        Issue Links

          Activity

            People

              sanja Oleksandr Byelkin
              elenst Elena Stepanova
              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.