Details
-
Type:
Bug
-
Status: Closed (View Workflow)
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 10.6.3, 10.2, 10.3, 10.4, 10.5
-
Component/s: Storage Engine - InnoDB
-
Labels:None
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
- relates to
-
MDEV-28488 InnoDB (compressed table) exported tablespace results in corrupted indexes
-
- Confirmed
-
-
MDEV-26215 Abort ALTER TABLE ... IMPORT TABLESPACE as soon as inconsistencies are obvious
-
- Closed
-