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

SEGV in ha_innobase::discard_or_import_tablespace

    XMLWordPrintable

Details

    Description

      worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
      SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION' ;
      SET DEFAULT_STORAGE_ENGINE= 'InnoDB' ;
      USE test ;
      CREATE TABLE `t1` (
      `col_varchar_255` varchar(255),
      `col_int` int,
      `col_text` text) ENGINE=innodb ;
      FLUSH TABLES t1 FOR EXPORT ;
      UNLOCK TABLES ;
      CREATE TABLE imp_t1 LIKE t1 ;
      ALTER TABLE imp_t1 ADD KEY idx ( col_text(13) ) ;
      'copy ibd file around'
      ALTER TABLE imp_t1 DISCARD TABLESPACE ;
      ALTER TABLE imp_t1 IMPORT TABLESPACE ;
      ERROR HY000: Got error 194 "Tablespace is missing for a table" from storage engine InnoDB
      'copy ibd file around'
      ALTER TABLE imp_t1 IMPORT TABLESPACE ;
      ERROR HY000: Lost connection to server during query
      DROP TABLE t1, imp_t1 ;
      main.ML_import1 'innodb'                 [ fail ]
              Test ended at 2021-07-12 09:31:01
       
      CURRENT_TEST: main.ML_import1
      /data/Server_bin/10.6G_fast/bin/mysqltest: Can't create/write to file '/data/Server_bin/10.6G_fast/mysql-test/var/mysqld.1/data/test/imp_t1.ibd' (Errcode: 17 "File exists")
      mysqltest: At line 35: query 'DROP TABLE t1, imp_t1 ' failed: <Unknown> (2006): Server has gone away
      ...
      2021-07-12  9:31:00 0 [Note] /data/Server_bin/10.6G_fast/bin/mariadbd: ready for connections.
      Version: '10.6.3-MariaDB-log'  socket: '/data/Server_bin/10.6G_fast/mysql-test/var/tmp/mysqld.1.sock'  port: 16000  Source distribution
      2021-07-12  9:31:00 4 [Note] InnoDB: Sync to disk of `test`.`t1` started.
      2021-07-12  9:31:00 4 [Note] InnoDB: Stopping purge
      2021-07-12  9:31:00 4 [Note] InnoDB: Writing table metadata to './test/t1.cfg'
      2021-07-12  9:31:00 4 [Note] InnoDB: Table `test`.`t1` flushed to disk
      2021-07-12  9:31:00 4 [Note] InnoDB: Deleting the meta-data file './test/t1.cfg'
      2021-07-12  9:31:00 4 [Note] InnoDB: Resuming purge
      2021-07-12  9:31:00 4 [ERROR] InnoDB: Operating system error number 2 in a file operation.
      2021-07-12  9:31:00 4 [ERROR] InnoDB: The error means the system cannot find the path specified.
      2021-07-12  9:31:00 4 [ERROR] InnoDB: Trying to import a tablespace, but could not open the tablespace file ./test/imp_t1.ibd
      2021-07-12  9:31:00 4 [Note] InnoDB: Discarding tablespace of table `test`.`imp_t1`: Tablespace not found
      2021-07-12  9:31:00 4 [Note] InnoDB: Sync to disk
      2021-07-12  9:31:00 4 [Note] InnoDB: Sync to disk - done!
      2021-07-12  9:31:00 4 [Warning] InnoDB: Table `test`.`imp_t1` should have 2 indexes but the tablespace has 1 indexes
      2021-07-12  9:31:00 4 [Note] InnoDB: Phase I - Update all pages
      2021-07-12  9:31:00 4 [Note] InnoDB: Sync to disk
      2021-07-12  9:31:00 4 [Note] InnoDB: Sync to disk - done!
      2021-07-12  9:31:00 4 [Warning] InnoDB: Skip adjustment of root pages for index `idx`.
      2021-07-12  9:31:00 4 [Note] InnoDB: Phase III - Flush changes to disk
      2021-07-12  9:31:00 4 [Note] InnoDB: Phase IV - Flush complete
      2021-07-12  9:31:00 4 [ERROR] InnoDB: Index `idx` of table `test`.`imp_t1` is corrupted
      2021-07-12  9:31:00 4 [Note] InnoDB: Load corrupted index `idx` of table `test`.`imp_t1`
      2021-07-12  9:31:00 4 [ERROR] InnoDB: Trying to load index `idx` for table `test`.`imp_t1`, but the index tree has been freed!
      2021-07-12  9:31:00 4 [Warning] InnoDB: Failed to load table `test`.`imp_t1`:Data structure corruption
      210712  9:31:00 [ERROR] mysqld got signal 11 ;
      ...
      Query (0x7f3bbc010650): ALTER TABLE imp_t1 IMPORT TABLESPACE
      Connection ID (thread ID): 4
      Status: NOT_KILLED
       
      #3  <signal handler called>
      #4  0x000055c41ab763e0 in ha_innobase::discard_or_import_tablespace (this=0x7f3bbc0baa70, discard=<optimized out>) at /data/Server/10.6G/storage/innobase/handler/ha_innodb.cc:13201
      #5  0x000055c41a77ff96 in mysql_discard_or_import_tablespace (thd=thd@entry=0x7f3bbc000c58, table_list=table_list@entry=0x7f3bbc010740, discard=<optimized out>) at /data/Server/10.6G/sql/sql_table.cc:5463
      #6  0x000055c41a7ebe54 in Sql_cmd_discard_import_tablespace::execute (this=0x7f3bbc010e28, thd=0x7f3bbc000c58) at /data/Server/10.6G/sql/sql_alter.cc:591
      #7  0x000055c41a6ed626 in mysql_execute_command (thd=0x7f3bbc000c58, is_called_from_prepared_stmt=<optimized out>) at /data/Server/10.6G/sql/sql_parse.cc:5995
      #8  0x000055c41a6de446 in mysql_parse (rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>, thd=0x7f3bbc000c58) at /data/Server/10.6G/sql/sql_parse.cc:8028
      #9  mysql_parse (thd=0x7f3bbc000c58, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /data/Server/10.6G/sql/sql_parse.cc:7950
      #10 0x000055c41a6e9e12 in dispatch_command (command=COM_QUERY, thd=0x7f3bbc000c58, packet=<optimized out>, packet_length=<optimized out>, blocking=<optimized out>) at /data/Server/10.6G/sql/sql_class.h:1340
      #11 0x000055c41a6eba98 in do_command (thd=0x7f3bbc000c58, blocking=blocking@entry=true) at /data/Server/10.6G/sql/sql_parse.cc:1406
      #12 0x000055c41a7e7837 in do_handle_one_connection (connect=<optimized out>, connect@entry=0x55c41e0a5a58, put_in_cache=put_in_cache@entry=true) at /data/Server/10.6G/sql/sql_connect.cc:1410
      #13 0x000055c41a7e7b2d in handle_one_connection (arg=0x55c41e0a5a58) at /data/Server/10.6G/sql/sql_connect.cc:1312
      #14 0x00007f3bf84df609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      #15 0x00007f3bf80b3293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      GIT_SHOW: HEAD, origin/HEAD, origin/10.6, 10.6 315380a4d16ddb16461d906a23be341e354c30ed 2021-07-01T19:06:53+03:00

      I am aware that the MTR test shows some rather ugly scenario. But mistakes happen and they should not end up with SEGV.

      Attachments

        Issue Links

          Activity

            People

              thiru Thirunarayanan Balathandayuthapani
              mleich Matthias Leich
              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.