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

Unexpected ER_NO_SUCH_TABLE on CREATE OR REPLACE with further assertion failures

    XMLWordPrintable

Details

    Description

      --source include/have_binlog_format_row.inc
       
      CREATE TEMPORARY TABLE tmp (a INT);
      CREATE OR REPLACE TABLE t_apparently_it_has_to_be_at_least_this_long LIKE tmp;
      

      10.11 8759967d

      mysqltest: At line 4: query 'CREATE OR REPLACE TABLE t_apparently_it_has_to_be_at_least_this_long LIKE tmp' failed: ER_NO_SUCH_TABLE (1146): Table 'test.#sql-create-596ce-5-t_apparently_it_has_to_be_at_least_this_long' doesn't exist
      

      Naturally it shouldn't be happening; and the name is not long enough to consider it a corner case.

      After this, a debug assertion fails upon disconnect:

      mariadbd: /data/src/10.11/sql/sql_class.cc:1568: void THD::cleanup(): Assertion `!mdl_context.has_locks()' failed.
      221005 14:53:55 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007fcbbe48e662 in __GI___assert_fail (assertion=0x55ee06dafee0 "!mdl_context.has_locks()", file=0x55ee06daef80 "/data/src/10.11/sql/sql_class.cc", line=1568, function=0x55ee06dafe20 "void THD::cleanup()") at assert.c:101
      #8  0x000055ee04cfbb6b in THD::cleanup (this=0x62b00008c218) at /data/src/10.11/sql/sql_class.cc:1568
      #9  0x000055ee04a92a5d in unlink_thd (thd=0x62b00008c218) at /data/src/10.11/sql/mysqld.cc:2763
      #10 0x000055ee052dc3d8 in do_handle_one_connection (connect=0x608000002638, put_in_cache=true) at /data/src/10.11/sql/sql_connect.cc:1427
      #11 0x000055ee052dbc28 in handle_one_connection (arg=0x6080000025b8) at /data/src/10.11/sql/sql_connect.cc:1318
      #12 0x000055ee05eb6348 in pfs_spawn_thread (arg=0x617000005498) at /data/src/10.11/storage/perfschema/pfs.cc:2201
      #13 0x00007fcbbe96aea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #14 0x00007fcbbe559aef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      If we accept ER_NO_SUCH_TABLE and don't disconnect right away, the next FLUSH BINARY LOGS fails on a different assertion:

      --source include/have_binlog_format_row.inc
       
      CREATE TEMPORARY TABLE tmp (a INT);
      --error ER_NO_SUCH_TABLE
      CREATE OR REPLACE TABLE t_apparently_it_has_to_be_at_least_this_long LIKE tmp;
      FLUSH BINARY LOGS;
      

      mariadbd: /data/src/10.11/sql/sql_reload.cc:220: bool reload_acl_and_cache(THD*, long long unsigned int, TABLE_LIST*, int*): Assertion `!thd || thd->locked_tables_mode || !thd->mdl_context.has_locks() || thd->handler_tables_hash.records || thd->ull_hash.records || thd->global_read_lock.is_acquired() || thd->mdl_backup_lock || thd->current_backup_stage != BACKUP_FINISHED' failed.
      221005 14:57:21 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007ff2adb24662 in __GI___assert_fail (assertion=0x5626bcfff2c0 "!thd || thd->locked_tables_mode || !thd->mdl_context.has_locks() || thd->handler_tables_hash.records || thd->ull_hash.records || thd->global_read_lock.is_acquired() || thd->mdl_backup_lock || thd->cur"..., file=0x5626bcfff1e0 "/data/src/10.11/sql/sql_reload.cc", line=220, function=0x5626bcfff240 "bool reload_acl_and_cache(THD*, long long unsigned int, TABLE_LIST*, int*)") at assert.c:101
      #8  0x00005626bb332247 in reload_acl_and_cache (thd=0x62b00008c218, options=1024, tables=0x0, write_to_binlog=0x7ff2a4705e20) at /data/src/10.11/sql/sql_reload.cc:220
      #9  0x00005626bae0f01c in mysql_execute_command (thd=0x62b00008c218, is_called_from_prepared_stmt=false) at /data/src/10.11/sql/sql_parse.cc:5464
      #10 0x00005626bae202c0 in mysql_parse (thd=0x62b00008c218, rawbuf=0x6290000e6238 "FLUSH BINARY LOGS", length=17, parser_state=0x7ff2a4706ab0) at /data/src/10.11/sql/sql_parse.cc:8037
      #11 0x00005626badf6922 in dispatch_command (command=COM_QUERY, thd=0x62b00008c218, packet=0x629000253219 "FLUSH BINARY LOGS", packet_length=17, blocking=true) at /data/src/10.11/sql/sql_parse.cc:1894
      #12 0x00005626badf36fa in do_command (thd=0x62b00008c218, blocking=true) at /data/src/10.11/sql/sql_parse.cc:1407
      #13 0x00005626bb29a292 in do_handle_one_connection (connect=0x608000002638, put_in_cache=true) at /data/src/10.11/sql/sql_connect.cc:1416
      #14 0x00005626bb299c28 in handle_one_connection (arg=0x6080000025b8) at /data/src/10.11/sql/sql_connect.cc:1318
      #15 0x00005626bbe74348 in pfs_spawn_thread (arg=0x617000005498) at /data/src/10.11/storage/perfschema/pfs.cc:2201
      #16 0x00007ff2ae000ea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #17 0x00007ff2adbefaef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      The errors started happening after MDEV-25292

      commit 93c8252f02faa8ad8dc5f005e52f1990c29d4a0d (HEAD)
      Author: Aleksey Midenkov
      Date:   Wed Aug 31 11:55:04 2022 +0300
       
          MDEV-25292 Atomic CREATE OR REPLACE TABLE
      

      Attachments

        Issue Links

          Activity

            People

              midenok Aleksey Midenkov
              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.