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

Assertion `marked_for_read()' failed upon UPDATE on Spider table

    XMLWordPrintable

Details

    Description

      INSTALL SONAME 'ha_spider';
      SET spider_same_server_link = ON;
       
      --eval create server s foreign data wrapper mysql options (host "127.0.0.1", database "test", user "root", port $MASTER_MYPORT)
       
      CREATE TABLE t (
        pk INT PRIMARY KEY,
        a INT AUTO_INCREMENT,
        b VARCHAR(8),
        UNIQUE KEY (a)
      );
      INSERT INTO t VALUES (1,1,'foo');
       
      CREATE TABLE fed_t (
        pk INT PRIMARY KEY,
        a INT AUTO_INCREMENT,
        b VARCHAR(8),
        UNIQUE KEY (a)
      ) ENGINE=SPIDER COMMENT = 'wrapper "mysql", srv "s", table "t"';
       
      UPDATE fed_t SET b = 'bar' ORDER BY pk LIMIT 1;
       
      DROP TABLE fed_t, t;
      

      10.6 9f28e7be59de58b92573351cd69978d7602feb34

      mariadbd: /data/bld/10.6-asan-ubsan/sql/field.cc:4471: virtual longlong Field_long::val_int(): Assertion `marked_for_read()' failed.
      260127 11:36:12 [ERROR] /share8t/bld/10.6-asan-ubsan/sql/mariadbd got signal 6 ;
       
      #9  0x00007ff55c045395 in __assert_fail_base (fmt=0x7ff55c1b9a90 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x564a2e767d80 "marked_for_read()", file=file@entry=0x564a2e7603a0 "/data/bld/10.6-asan-ubsan/sql/field.cc", line=line@entry=4471, function=function@entry=0x564a2e768300 "virtual longlong Field_long::val_int()") at ./assert/assert.c:92
      #10 0x00007ff55c053eb2 in __GI___assert_fail (assertion=0x564a2e767d80 "marked_for_read()", file=0x564a2e7603a0 "/data/bld/10.6-asan-ubsan/sql/field.cc", line=4471, function=0x564a2e768300 "virtual longlong Field_long::val_int()") at ./assert/assert.c:101
      #11 0x0000564a2bc44f40 in Field_long::val_int (this=0x6250004b0e88) at /data/bld/10.6-asan-ubsan/sql/field.cc:4471
      #12 0x00007ff5372f205e in ha_spider::update_row (this=0x6250004b0148, old_data=<optimized out>, new_data=<optimized out>) at /data/bld/10.6-asan-ubsan/storage/spider/ha_spider.cc:7037
      #13 0x0000564a2bdcac42 in handler::ha_update_row (this=this@entry=0x6250004b0148, old_data=<optimized out>, new_data=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/handler.cc:7843
      #14 0x0000564a2b14a038 in mysql_update (thd=thd@entry=0x62b00009a218, table_list=<optimized out>, fields=..., values=..., conds=conds@entry=0x0, order_num=order_num@entry=1, order=<optimized out>, limit=1, ignore=<optimized out>, found_return=<optimized out>, updated_return=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/sql_update.cc:1110
      #15 0x0000564a2ab96142 in mysql_execute_command (thd=thd@entry=0x62b00009a218, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:4478
      #16 0x0000564a2abb30f4 in mysql_parse (thd=thd@entry=0x62b00009a218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7ff538699ac0) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:8201
      #17 0x0000564a2abbc3f1 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62b00009a218, packet=packet@entry=0x6290000f0219 "UPDATE fed_t SET b = 'bar' ORDER BY pk LIMIT 1", packet_length=packet_length@entry=46, blocking=blocking@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:1911
      #18 0x0000564a2abc910c in do_command (thd=thd@entry=0x62b00009a218, blocking=blocking@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:1421
      #19 0x0000564a2b34c0a4 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x608000018c38, put_in_cache=put_in_cache@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_connect.cc:1386
      #20 0x0000564a2b34d201 in handle_one_connection (arg=0x608000018c38) at /data/bld/10.6-asan-ubsan/sql/sql_connect.cc:1298
      #21 0x0000564a2cd7f075 in pfs_spawn_thread (arg=0x617000007798) at /data/bld/10.6-asan-ubsan/storage/perfschema/pfs.cc:2201
      #22 0x00007ff55c0a81c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #23 0x00007ff55c12885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      Reproducible on 10.6 and 10.11 (and EOL-ed 10.5).
      No obvious problem on a non-debug build.
      Not reproducible on 11.4+.

      The failure started happening after this commit in 10.5.24:

      commit c4ebf87f862ad6ab610e553a94dfa385a94a116c
      Author: Sergei Golubchik
      Date:   Wed Dec 13 21:02:44 2023 +0100
       
          MDEV-32984 Update federated table and column privileges
      

      I didn't bisect 11.x to find out what made it stop happening there.

      Attachments

        Issue Links

          Activity

            People

              ycp Yuchen Pei
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 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.