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

Instant table aborts after discard tablespace

    XMLWordPrintable

Details

    Description

      --source include/have_innodb.inc
      SET sql_mode='';
      CREATE TABLE t (c1 INT KEY) ENGINE=InnoDB;
      INSERT INTO t VALUES();
      ALTER TABLE t ADD c2 INT;
      ALTER TABLE t DISCARD TABLESPACE;
      ALTER TABLE t ADD c3 INT FIRST;
      

      Leads to:

      10.11.8 c3460e690431ce94705888737c2b9de6968665a7 (Debug)

      mariadbd: /test/10.11_dbg/storage/innobase/handler/handler0alter.cc:387: void dict_table_t::prepare_instant(const dict_table_t&, const ulint*, unsigned int&): Assertion `(((core_null) + 7) >> 3) == oindex.n_core_null_bytes || !not_redundant()' failed.
      

      10.11.8 c3460e690431ce94705888737c2b9de6968665a7 (Debug)

      Core was generated by `/test/MD240424-mariadb-10.11.8-linux-x86_64-dbg/bin/mariadbd --no-defaults --ma'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      Download failed: Invalid argument.  Continuing without source file ./nptl/./nptl/pthread_kill.c.
      [Current thread is 1 (LWP 1201248)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x000014a2e6c42866 in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x000014a2e6c268b7 in __GI_abort () at ./stdlib/abort.c:79
      #5  0x000014a2e6c267db in __assert_fail_base (fmt=0x14a2e6dc5168 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x556744032030 "(((core_null) + 7) >> 3) == oindex.n_core_null_bytes || !not_redundant()", file=file@entry=0x55674402ab38 "/test/10.11_dbg/storage/innobase/handler/handler0alter.cc", line=line@entry=387, function=function@entry=0x556744031d50 "void dict_table_t::prepare_instant(const dict_table_t&, const ulint*, unsigned int&)") at ./assert/assert.c:92
      #6  0x000014a2e6c39186 in __assert_fail (assertion=0x556744032030 "(((core_null) + 7) >> 3) == oindex.n_core_null_bytes || !not_redundant()", file=0x55674402ab38 "/test/10.11_dbg/storage/innobase/handler/handler0alter.cc", line=387, function=0x556744031d50 "void dict_table_t::prepare_instant(const dict_table_t&, const ulint*, unsigned int&)") at ./assert/assert.c:101
      #7  0x000055674380b577 in dict_table_t::prepare_instant (this=<optimized out>, old=Python Exception <class 'AttributeError'>: 'NoneType' object has no attribute 'pointer'
      Python Exception <class 'AttributeError'>: 'NoneType' object has no attribute 'pointer'
      @0x14a298020108: {id = 19, id_hash = 0x0, name = {m_name = 0x14a2980083c8 "test/t", static part_suffix = "#P#"}, name_hash = 0x0, heap = 0x14a29801ff78, data_dir_path = 0x0, space = 0x0, space_id = 5, flags = 33, flags2 = 112, skip_alter_undo = 0, file_unreadable = 1, cached = 1, n_def = 5, n_cols = 5, n_t_cols = 5, n_t_def = 5, n_v_def = 0, n_v_cols = 0, persistent_autoinc = 0, can_be_evicted = 1, corrupted = 0, drop_aborted = 0, cols = 0x14a298020570, v_cols = 0x0, s_cols = 0x0, instant = 0x0, col_names = 0x14a298020548 "c1", v_col_names = 0x0, vers_start = 0, vers_end = 0, is_system_db = false, dict_frm_mismatch = DICT_FRM_CONSISTENT, fts_doc_id_index = 0x0, indexes = {count = 1, start = 0x14a298022bb8, end = 0x14a298022bb8, node = &dict_index_t::indexes, init = 51966}, freed_indexes = {count = 0, start = 0x0, end = 0x0, node = &dict_index_t::indexes, init = 51966}, foreign_list = {count = 0, start = 0x0, end = 0x0, node = &dict_foreign_t::heap, init = 0}, referenced_list = {count = 0, start = 0x0, end = 0x0, node = &dict_foreign_t::heap, init = 0}, table_LRU = {prev = 0x0, next = 0x14a2b001db28}, fk_max_recusive_level = 0 '\000', def_trx_id = 26, bulk_trx_id = {m = std::atomic<unsigned long> = { 0 }}, mdl_name = {m_name = 0x14a2980083c8 "test/t", static part_suffix = <same as static member of an already seen type>}, foreign_set = std::set with 0 elements, referenced_set = std::set with 0 elements, stat_initialized = 1, stats_last_recalc = 0, stat_persistent = 0, stats_auto_recalc = 0, stats_sample_pages = 0, stat_n_rows = 0, stat_clustered_index_size = 1, stat_sum_of_other_index_sizes = 0, stat_modified_counter = 0, stats_error_printed = false, autoinc_lock = 0x14a2980204c8, autoinc_mutex = {lock = std::atomic<unsigned int> = { 0 }, static HOLDER = 2147483648}, lock_mutex = {lock = std::atomic<unsigned int> = { 0 }, static HOLDER = 2147483648}, lock_mutex_owner = {m = std::atomic<unsigned long> = { 0 }}, autoinc = 0, autoinc_trx = {m = std::atomic<const struct trx_t *> = { 0x0 }}, n_waiting_or_granted_auto_inc_locks = 0, n_lock_x_or_s = 0, fts = 0x0, quiesce = QUIESCE_NONE, n_rec_locks = {m_counter = std::atomic<unsigned int> = { 0 }}, n_ref_count = {m_counter = std::atomic<unsigned int> = { 1 }}, locks = {count = 0, start = 0x0, end = 0x0, node = &lock_table_t::locks, init = 51966}, update_time = {m = std::atomic<long> = { 1715834052 }}, query_cache_inv_trx_id = {m = std::atomic<unsigned long> = { 25 }}, magic_n = 76333786, vc_templ = 0x0}, col_map=0x14a29807b498, first_alter_pos=@0x14a2980150b0: 1)at /test/10.11_dbg/storage/innobase/handler/handler0alter.cc:387
      #8  0x000055674380bdb5 in ha_innobase_inplace_ctx::prepare_instant (this=this@entry=0x14a298014f50)at /test/10.11_dbg/storage/innobase/handler/handler0alter.cc:1209
      #9  0x00005567437f39c6 in prepare_inplace_alter_table_dict (ha_alter_info=ha_alter_info@entry=0x14a2d014fe40, altered_table=altered_table@entry=0x14a2d014ff00, old_table=<optimized out>, table_name=<optimized out>, flags=<optimized out>, flags2=<optimized out>, fts_doc_id_col=<optimized out>, add_fts_doc_id=<optimized out>, add_fts_doc_id_idx=<optimized out>)at /test/10.11_dbg/storage/innobase/handler/handler0alter.cc:7037
      #10 0x00005567437f9d42 in ha_innobase::prepare_inplace_alter_table (this=<optimized out>, altered_table=<optimized out>, ha_alter_info=<optimized out>)at /test/10.11_dbg/storage/innobase/handler/handler0alter.cc:8653
      #11 0x000055674346f577 in handler::ha_prepare_inplace_alter_table (this=0x14a298027930, altered_table=altered_table@entry=0x14a2d014ff00, ha_alter_info=ha_alter_info@entry=0x14a2d014fe40)at /test/10.11_dbg/sql/handler.cc:5317
      #12 0x000055674325a54c in mysql_inplace_alter_table (thd=thd@entry=0x14a298000d58, table_list=0x14a298013568, table=table@entry=0x14a298075448, altered_table=altered_table@entry=0x14a2d014ff00, ha_alter_info=ha_alter_info@entry=0x14a2d014fe40, target_mdl_request=target_mdl_request@entry=0x14a2d01508e0, ddl_log_state=0x14a2d014fe20, trigger_param=0x14a2d0150300, alter_ctx=0x14a2d01514b0, partial_alter=@0x14a2d014fdaf: false, start_alter_id=@0x14a2d014fdb8: 0, if_exists=false)at /test/10.11_dbg/sql/sql_table.cc:7815
      #13 0x000055674326e91a in mysql_alter_table (thd=thd@entry=0x14a298000d58, new_db=<optimized out>, new_name=new_name@entry=0x14a298005f28, create_info=create_info@entry=0x14a2d0152320, table_list=<optimized out>, table_list@entry=0x14a298013568, recreate_info=recreate_info@entry=0x14a2d0152190, alter_info=<optimized out>, order_num=<optimized out>, order=<optimized out>, ignore=<optimized out>, if_exists=<optimized out>)at /test/10.11_dbg/sql/sql_table.cc:11075
      #14 0x00005567432f1fb7 in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x14a298000d58) at /test/10.11_dbg/sql/sql_alter.cc:688
      #15 0x00005567431878ff in mysql_execute_command (thd=thd@entry=0x14a298000d58, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false)at /test/10.11_dbg/sql/sql_parse.cc:6125
      #16 0x00005567431893a9 in mysql_parse (thd=thd@entry=0x14a298000d58, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x14a2d01532b0)at /test/10.11_dbg/sql/sql_parse.cc:8126
      #17 0x000055674318b884 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x14a298000d58, packet=packet@entry=0x14a29800b149 "ALTER TABLE t ADD c3 INT FIRST", packet_length=packet_length@entry=30, blocking=blocking@entry=true)at /test/10.11_dbg/sql/sql_class.h:244
      #18 0x000055674318db25 in do_command (thd=0x14a298000d58, blocking=blocking@entry=true) at /test/10.11_dbg/sql/sql_parse.cc:1407
      #19 0x00005567432eabc1 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x556746444a88, put_in_cache=put_in_cache@entry=true)at /test/10.11_dbg/sql/sql_connect.cc:1415
      #20 0x00005567432eaec0 in handle_one_connection (arg=arg@entry=0x556746444a88)at /test/10.11_dbg/sql/sql_connect.cc:1317
      #21 0x0000556743711a34 in pfs_spawn_thread (arg=0x5567463c6ad8)at /test/10.11_dbg/storage/perfschema/pfs.cc:2201
      #22 0x000014a2e6c97ada in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:444
      #23 0x000014a2e6d2847c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Bug confirmed present in:
      MariaDB: 10.5.25 (dbg), 10.6.18 (dbg), 10.11.8 (dbg), 11.1.5 (dbg), 11.2.4 (dbg)

      Bug (or feature/syntax) confirmed not present in:
      MariaDB: 10.5.25 (opt), 10.6.18 (opt), 10.11.8 (opt), 11.1.5 (opt), 11.2.4 (opt)
      MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.51 (dbg), 5.6.51 (opt), 5.7.44 (dbg), 5.7.44 (opt), 8.0.36 (dbg), 8.0.36 (opt)

      Attachments

        Issue Links

          Activity

            People

              thiru Thirunarayanan Balathandayuthapani
              Roel Roel Van de Paar
              Votes:
              0 Vote for this issue
              Watchers:
              2 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.