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

Server crashes upon SELECT .. FOR UPDATE under SERIALIZABLE

    XMLWordPrintable

Details

    • Not for Release Notes

    Description

      --source include/have_innodb.inc
       
      SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
      CREATE TABLE t (a INT) ENGINE=InnoDB;
      SELECT * FROM t FOR UPDATE;
       
      DROP TABLE t;
      

      10.6 non-debug 7fbbbc983f054a9c9c7f36ea8a9778ff3793a151

      2025-07-12 23:04:06 0x7fb20428e6c0  InnoDB: Assertion failure in file /data/bld/10.6-rel/storage/innobase/trx/trx0trx.cc line 1385
      InnoDB: Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0
       
      #6  0x00007fb20a845472 in __GI_abort () at ./stdlib/abort.c:79
      #7  0x0000563a7bc66e82 in ut_dbg_assertion_failed (expr=expr@entry=0x563a7c93bee0 "UT_LIST_GET_LEN(lock.trx_locks) == 0", file=file@entry=0x563a7c93bce0 "/data/bld/10.6-rel/storage/innobase/trx/trx0trx.cc", line=line@entry=1385) at /data/bld/10.6-rel/storage/innobase/ut/ut0dbg.cc:60
      #8  0x0000563a7bc660cf in trx_t::commit_in_memory (mtr=0x0, this=0x7fb204535b80) at /data/bld/10.6-rel/storage/innobase/trx/trx0trx.cc:1385
      #9  trx_t::commit_low (this=this@entry=0x7fb204535b80, mtr=0x0) at /data/bld/10.6-rel/storage/innobase/trx/trx0trx.cc:1575
      #10 0x0000563a7c425b2e in trx_t::commit_persist (this=this@entry=0x7fb204535b80) at /data/bld/10.6-rel/storage/innobase/trx/trx0trx.cc:1589
      #11 0x0000563a7c425c87 in trx_t::commit (this=0x7fb204535b80) at /data/bld/10.6-rel/storage/innobase/trx/trx0trx.cc:1598
      #12 trx_commit_for_mysql (trx=trx@entry=0x7fb204535b80) at /data/bld/10.6-rel/storage/innobase/trx/trx0trx.cc:1710
      #13 0x0000563a7c32132c in innobase_commit_low (trx=0x7fb204535b80) at /data/bld/10.6-rel/storage/innobase/handler/ha_innodb.cc:4438
      #14 innobase_commit_ordered_2 (thd=0x7fb1d0000c68, trx=0x7fb204535b80) at /data/bld/10.6-rel/storage/innobase/handler/ha_innodb.cc:4532
      #15 innobase_commit (hton=<optimized out>, thd=0x7fb1d0000c68, commit_trx=<optimized out>) at /data/bld/10.6-rel/storage/innobase/handler/ha_innodb.cc:4666
      #16 0x0000563a7bffdf19 in commit_one_phase_2 (thd=thd@entry=0x7fb1d0000c68, all=<optimized out>, trans=0x7fb1d0004490, is_real_trans=<optimized out>) at /data/bld/10.6-rel/sql/handler.cc:2185
      #17 0x0000563a7bffe157 in ha_commit_one_phase (thd=thd@entry=0x7fb1d0000c68, all=all@entry=false) at /data/bld/10.6-rel/sql/handler.cc:2136
      #18 0x0000563a7bfff983 in ha_commit_trans (thd=thd@entry=0x7fb1d0000c68, all=all@entry=false) at /data/bld/10.6-rel/sql/handler.cc:1930
      #19 0x0000563a7bee584f in trans_commit_stmt (thd=thd@entry=0x7fb1d0000c68) at /data/bld/10.6-rel/sql/transaction.cc:501
      #20 0x0000563a7bdb5fec in mysql_execute_command (thd=thd@entry=0x7fb1d0000c68, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/bld/10.6-rel/sql/sql_parse.cc:6225
      #21 0x0000563a7bdbadf6 in mysql_parse (thd=0x7fb1d0000c68, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /data/bld/10.6-rel/sql/sql_parse.cc:8200
      #22 0x0000563a7bdbd2b5 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7fb1d0000c68, packet=packet@entry=0x7fb1d0008639 "", packet_length=packet_length@entry=26, blocking=blocking@entry=true) at /data/bld/10.6-rel/sql/sql_parse.cc:2007
      #23 0x0000563a7bdbeeaf in do_command (thd=thd@entry=0x7fb1d0000c68, blocking=blocking@entry=true) at /data/bld/10.6-rel/sql/sql_parse.cc:1421
      #24 0x0000563a7bed4ac5 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x563a8071b9e8, put_in_cache=put_in_cache@entry=true) at /data/bld/10.6-rel/sql/sql_connect.cc:1386
      #25 0x0000563a7bed4e15 in handle_one_connection (arg=arg@entry=0x563a8071b9e8) at /data/bld/10.6-rel/sql/sql_connect.cc:1298
      #26 0x0000563a7c283a07 in pfs_spawn_thread (arg=0x563a806ce4e8) at /data/bld/10.6-rel/storage/perfschema/pfs.cc:2201
      #27 0x00007fb20a8a81c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #28 0x00007fb20a92885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      10.6 debug 7fbbbc983f054a9c9c7f36ea8a9778ff3793a151

      mariadbd: /data/bld/10.6-asan-ubsan/storage/innobase/lock/lock0lock.cc:3630: ib_lock_t* lock_table_create(dict_table_t*, unsigned int, trx_t*, ib_lock_t*): Assertion `!trx->is_autocommit_non_locking()' failed.
      250712 23:05:21 [ERROR] /share8t/bld/10.6-asan-ubsan/sql/mariadbd got signal 6 ;
       
      #10 0x00007f3f7c053eb2 in __GI___assert_fail (assertion=0x558e93b22480 "!trx->is_autocommit_non_locking()", file=0x558e93b33d80 "/data/bld/10.6-asan-ubsan/storage/innobase/lock/lock0lock.cc", line=3630, function=0x558e93b31aa0 "ib_lock_t* lock_table_create(dict_table_t*, unsigned int, trx_t*, ib_lock_t*)") at ./assert/assert.c:101
      #11 0x0000558e924e72fd in lock_table_create (table=table@entry=0x6190000abf20, type_mode=type_mode@entry=1, trx=trx@entry=0x7f3f72a5d3c0, c_lock=c_lock@entry=0x0) at /data/bld/10.6-asan-ubsan/storage/innobase/lock/lock0lock.cc:3630
      #12 0x0000558e924e8fbc in lock_table_low (table=table@entry=0x6190000abf20, mode=mode@entry=LOCK_IX, thr=thr@entry=0x620000010798, trx=trx@entry=0x7f3f72a5d3c0) at /data/bld/10.6-asan-ubsan/storage/innobase/lock/lock0lock.cc:3887
      #13 0x0000558e924e975b in lock_table (table=0x6190000abf20, fktable=fktable@entry=0x0, mode=mode@entry=LOCK_IX, thr=thr@entry=0x620000010798) at /data/bld/10.6-asan-ubsan/storage/innobase/lock/lock0lock.cc:3946
      #14 0x0000558e928b1ff9 in row_search_mvcc (buf=buf@entry=0x625000285950 "\377", mode=mode@entry=PAGE_CUR_G, prebuilt=prebuilt@entry=0x620000010120, match_mode=match_mode@entry=0, direction=direction@entry=0) at /data/bld/10.6-asan-ubsan/storage/innobase/row/row0sel.cc:4721
      #15 0x0000558e92277c05 in ha_innobase::index_read (this=this@entry=0x625000285148, buf=buf@entry=0x625000285950 "\377", key_ptr=key_ptr@entry=0x0, key_len=key_len@entry=0, find_flag=find_flag@entry=HA_READ_AFTER_KEY) at /data/bld/10.6-asan-ubsan/storage/innobase/handler/ha_innodb.cc:9082
      #16 0x0000558e92279646 in ha_innobase::index_first (this=this@entry=0x625000285148, buf=buf@entry=0x625000285950 "\377") at /data/bld/10.6-asan-ubsan/storage/innobase/handler/ha_innodb.cc:9443
      #17 0x0000558e92279903 in ha_innobase::rnd_next (this=0x625000285148, buf=<optimized out>) at /data/bld/10.6-asan-ubsan/storage/innobase/handler/ha_innodb.cc:9535
      #18 0x0000558e90e8365f in handler::ha_rnd_next (this=this@entry=0x625000285148, buf=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/handler.cc:3577
      #19 0x0000558e91919bd7 in rr_sequential (info=0x62d0000a3210) at /data/bld/10.6-asan-ubsan/sql/records.cc:519
      #20 0x0000558e8fe4fe77 in READ_RECORD::read_record (this=0x62d0000a3210) at /data/bld/10.6-asan-ubsan/sql/records.h:81
      #21 join_init_read_record (tab=0x62d0000a3138) at /data/bld/10.6-asan-ubsan/sql/sql_select.cc:23432
      #22 0x0000558e8fe01b46 in sub_select (join=<optimized out>, join_tab=<optimized out>, end_of_records=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/sql_select.cc:22396
      #23 0x0000558e8fea9324 in do_select (join=join@entry=0x62d0000a1c90, procedure=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/sql_select.cc:21922
      #24 0x0000558e8ff634a8 in JOIN::exec_inner (this=this@entry=0x62d0000a1c90) at /data/bld/10.6-asan-ubsan/sql/sql_select.cc:4939
      #25 0x0000558e8ff63bda in JOIN::exec (this=this@entry=0x62d0000a1c90) at /data/bld/10.6-asan-ubsan/sql/sql_select.cc:4717
      #26 0x0000558e8ff5a568 in mysql_select (thd=thd@entry=0x62b0000bd218, tables=<optimized out>, fields=..., conds=conds@entry=0x0, og_num=og_num@entry=0, order=order@entry=0x0, group=<optimized out>, having=<optimized out>, proc_param=<optimized out>, select_options=<optimized out>, result=<optimized out>, unit=<optimized out>, select_lex=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/sql_select.cc:5196
      #27 0x0000558e8ff5b752 in handle_select (thd=thd@entry=0x62b0000bd218, lex=lex@entry=0x62b0000c1538, result=result@entry=0x62d0000a1c60, setup_tables_done_option=setup_tables_done_option@entry=0) at /data/bld/10.6-asan-ubsan/sql/sql_select.cc:573
      #28 0x0000558e8fc51360 in execute_sqlcom_select (thd=thd@entry=0x62b0000bd218, all_tables=<optimized out>) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:6422
      #29 0x0000558e8fc94dea 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:4013
      #30 0x0000558e8fcb6d04 in mysql_parse (thd=thd@entry=0x62b0000bd218, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7f3f6be85ac0) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:8200
      #31 0x0000558e8fcbffd4 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x62b0000bd218, packet=packet@entry=0x629000276219 "", packet_length=packet_length@entry=26, blocking=blocking@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:1908
      #32 0x0000558e8fcccc26 in do_command (thd=thd@entry=0x62b0000bd218, blocking=blocking@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_parse.cc:1421
      #33 0x0000558e9044e6ee in do_handle_one_connection (connect=<optimized out>, connect@entry=0x60800001c938, put_in_cache=put_in_cache@entry=true) at /data/bld/10.6-asan-ubsan/sql/sql_connect.cc:1386
      #34 0x0000558e9044f84b in handle_one_connection (arg=0x60800001c938) at /data/bld/10.6-asan-ubsan/sql/sql_connect.cc:1298
      #35 0x0000558e91e7e2d7 in pfs_spawn_thread (arg=0x617000007e98) at /data/bld/10.6-asan-ubsan/storage/perfschema/pfs.cc:2201
      #36 0x00007f3f7c0a81c4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      #37 0x00007f3f7c12885c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
      

      The failure started happening after this commit in 10.6:

      commit 7fbbbc983f054a9c9c7f36ea8a9778ff3793a151 (origin/HEAD, origin/10.6, 10.6)
      Author: Marko Mäkelä
      Date:   Fri Jul 11 16:07:08 2025 +0300
       
          MDEV-36330: SERIALIZABLE read inconsistency
      

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.