I can't reproduce the missing data part but I could get a crash with both 5.6 and 5.7 when tokudb_dir_per_db=ON (which is default in 5.7)
Here's my output:
PS 5.7.16:
==========
mysql> show variables like 'tokudb_dir_per_db';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| tokudb_dir_per_db | ON |
+-------------------+-------+
1 row in set (0.00 sec)
+bt
#0 __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:62
#1 0x0000000000943fad in handle_fatal_signal (sig=6) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/signal_handler.cc:223
#2 <signal handler called>
#3 0x00007f44de067428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#4 0x00007f44de06902a in __GI_abort () at abort.c:89
#5 0x00007f44d28d6578 in toku_do_backtrace_abort() [clone .85905] () at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/PerconaFT/portability/toku_assert.cc:14
7
#6 0x00007f44d291e015 in toku_do_assert_zero_fail (expr=expr@entry=2, expr_as_string=expr_as_string@entry=0x7f44d299ec53 "r", function=function@entry=0x7f44d29c18f0 <_ZZL22can_acquire_table_lockP13__toku_db_envP13__toku_db_txnPKcE
12__FUNCTION__.5611.13650> "can_acquire_table_lock", file=file@entry=0x7f44d29aadb0 "/mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/PerconaFT/src/ydb.cc", line
=line@entry=2917, caller_errno=<optimized out>) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/PerconaFT/portability/toku_assert.cc:177
#7 0x00007f44d297f88a in can_acquire_table_lock (iname_in_env=<optimized out>, txn=0x7f449d8a5200, env=0x0) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/
PerconaFT/src/ydb.cc:2917
#8 env_dbrename(__toku_db_env*, __toku_db_txn*, char const*, char const*, char const*, unsigned int) [clone .part.69.4607] (env=env@entry=0x7f44d3bd8600, txn=txn@entry=0x7f449d8a5200, fname=fname@entry=0x7f449d82e320 "./test/t1-ma
in", dbname=dbname@entry=0x0, newname=0x7f449d82e520 "./nema/t1-main", flags=flags@entry=0) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/PerconaFT/src/ydb
.cc:3138
#9 0x00007f44d29403a7 in env_dbrename (flags=<optimized out>, newname=<optimized out>, dbname=0x0, fname=0x7f449d82e320 "./test/t1-main", txn=0x7f449d8a5200, env=0x7f44d3bd8600) at /mnt/workspace/percona-server-5.7-binaries-releas
e/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/PerconaFT/src/ydb-internal.h:269
#10 locked_env_dbrename(__toku_db_env*, __toku_db_txn*, char const*, char const*, char const*, unsigned int) [clone .part.70] (flags=<optimized out>, newname=<optimized out>, dbname=0x0, fname=0x7f449d82e320 "./test/t1-main", txn=<
optimized out>, env=0x7f44d3bd8600) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/PerconaFT/src/ydb.cc:1366
#11 locked_env_dbrename(__toku_db_env*, __toku_db_txn*, char const*, char const*, char const*, unsigned int) [clone .4641] (env=0x7f44d3bd8600, txn=<optimized out>, fname=0x7f449d82e320 "./test/t1-main", dbname=0x0, newname=<optimi
zed out>, flags=<optimized out>) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/PerconaFT/src/ydb.cc:1352
#12 0x00007f44d28a8f57 in ha_tokudb::delete_or_rename_dictionary (this=this@entry=0x7f449d87f030, from_name=from_name@entry=0x7f44e059d2c0 "./test/t1", to_name=to_name@entry=0x7f44e059d4d0 "./nema/t1", secondary_name=secondary_name
@entry=0x7f44d29bc0e7 "main", is_key=is_key@entry=false, txn=0x7f449d8a5300, is_delete=is_delete@entry=false) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb
/ha_tokudb.cc:7576
#13 0x00007f44d28aa470 in ha_tokudb::delete_or_rename_table (this=this@entry=0x7f449d87f030, from_name=from_name@entry=0x7f44e059d2c0 "./test/t1", to_name=to_name@entry=0x7f44e059d4d0 "./nema/t1", is_delete=is_delete@entry=false) a
t /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/tokudb/ha_tokudb.cc:7646
#14 0x00007f44d28ac1eb in ha_tokudb::rename_table (this=0x7f449d87f030, from=0x7f44e059d2c0 "./test/t1", to=0x7f44e059d4d0 "./nema/t1") at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-serve
r-5.7.16-10/storage/tokudb/ha_tokudb.cc:7741
#15 0x0000000000e57b69 in mysql_rename_table (base=base@entry=0x7f44c67aade0, old_db=0x7f449d8289a0 "test", old_name=0x7f449d8289a8 "t1", new_db=0x7f449d828f60 "nema", new_name=0x7f449d828f68 "t1", flags=flags@entry=0) at /mnt/work
space/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/sql_table.cc:5769
#16 0x000000000090d15d in simple_rename_or_index_change (thd=thd@entry=0x7f449d816000, table_list=0x7f449d8289e0, keys_onoff=<optimized out>, alter_ctx=alter_ctx@entry=0x7f44e059f500) at /mnt/workspace/percona-server-5.7-binaries-r
elease/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/sql_table.cc:8985
#17 0x0000000000e5a7a2 in mysql_alter_table (thd=thd@entry=0x7f449d816000, new_db=<optimized out>, new_name=0x7f449d828f68 "t1", create_info=create_info@entry=0x7f44e05a00d0, table_list=table_list@entry=0x7f449d8289e0, alter_info=a
lter_info@entry=0x7f44e05a0000) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/sql_table.cc:9538
#18 0x0000000000f3bae8 in Sql_cmd_alter_table::execute (this=<optimized out>, thd=0x7f449d816000) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/sql_alter.cc:320
#19 0x0000000000df6814 in mysql_execute_command (thd=thd@entry=0x7f449d816000, first_level=first_level@entry=true) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/sql_p
arse.cc:5065
#20 0x0000000000dfa2d5 in mysql_parse (thd=thd@entry=0x7f449d816000, parser_state=parser_state@entry=0x7f44e05a1710) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/sql
_parse.cc:5838
#21 0x0000000000dfb551 in dispatch_command (thd=thd@entry=0x7f449d816000, com_data=com_data@entry=0x7f44e05a1db0, command=COM_QUERY) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5
.7.16-10/sql/sql_parse.cc:1447
#22 0x0000000000dfbccd in do_command (thd=thd@entry=0x7f449d816000) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/sql_parse.cc:1010
#23 0x0000000000eb26e4 in handle_connection (arg=arg@entry=0x7f44c679df70) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/sql/conn_handler/connection_handler_per_thread.cc
:312
#24 0x000000000133b194 in pfs_spawn_thread (arg=0x7f44d57ab120) at /mnt/workspace/percona-server-5.7-binaries-release/label_exp/debian-wheezy-x64/percona-server-5.7.16-10/storage/perfschema/pfs.cc:2188
#25 0x00007f44dffbb70a in start_thread (arg=0x7f44e05a2700) at pthread_create.c:333
#26 0x00007f44de13882d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
restart and reconnect:
mysql> select * from test.t1;
+------+
| a |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)
PS 5.6.34:
==========
mysql> show variables like 'tokudb_dir_per_db';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| tokudb_dir_per_db | OFF |
+-------------------+-------+
1 row in set (0.01 sec)
mysql> alter table test.t1 rename nema.t1;
ERROR 7 (HY000): Error on rename of './test/t1.frm' to './nema/t1.frm' (Errcode: 2 - No such file or directory)
mysql> select * from t1;
+------+
| a |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)
mysql> show variables like '%version%';
| tokudb_version | 5.6.34-79.1
I can't reproduce the missing data part but I could get a crash with both 5.6 and 5.7 when tokudb_ dir_per_ db=ON (which is default in 5.7)
Here's my output: dir_per_ db'; ------- ------+ ------- + ------- ------+ ------- + ------- ------+ ------- +
PS 5.7.16:
==========
mysql> show variables like 'tokudb_
+------
| Variable_name | Value |
+------
| tokudb_dir_per_db | ON |
+------
1 row in set (0.00 sec)
mysql> use test;
Database changed
mysql> create table t1 (a int) engine=TokuDB;
Query OK, 0 rows affected (0.29 sec)
mysql> insert into t1 values (1),(2),(3);
Query OK, 3 rows affected (0.09 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> alter table test.t1 rename nema.t1;
ERROR 2013 (HY000): Lost connection to MySQL server during query
Version: '5.7.16-10' socket: '/home/ tomislav. plavcic/ Percona- Server- 5.7.16- 10-Linux. x86_64. ssl100/ socket. sock' port: 19636 Percona Server (GPL), Release 10, Revision a0c7d0d percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ PerconaFT/ src/ydb. cc:2917 can_acquire_ table_lock: Assertion `r == 0' failed (errno=2) (r=2)
/mnt/workspace/
+bt <optimized out>, signo=6) at ../sysdeps/ unix/sysv/ linux/pthread_ kill.c: 62 percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ signal_ handler. cc:223 unix/sysv/ linux/raise. c:54 backtrace_ abort() [clone .85905] () at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ PerconaFT/ portability/ toku_assert. cc:14 assert_ zero_fail (expr=expr@entry=2, expr_as_ string= expr_as_ string@ entry=0x7f44d29 9ec53 "r", function= function@ entry=0x7f44d29 c18f0 <_ZZL22can_ acquire_ table_lockP13_ _toku_db_ envP13_ _toku_db_ txnPKcE _.5611. 13650> "can_acquire_ table_lock" , file=file@ entry=0x7f44d29 aadb0 "/mnt/workspace /percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ PerconaFT/ src/ydb. cc", line errno=< optimized out>) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ PerconaFT/ portability/ toku_assert. cc:177 table_lock (iname_ in_env= <optimized out>, txn=0x7f449d8a5200, env=0x0) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ src/ydb. cc:2917 __toku_ db_env* , __toku_db_txn*, char const*, char const*, char const*, unsigned int) [clone .part.69.4607] (env=env@ entry=0x7f44d3b d8600, txn=txn@ entry=0x7f449d8 a5200, fname=fname@ entry=0x7f449d8 2e320 "./test/t1-ma dbname@ entry=0x0, newname= 0x7f449d82e520 "./nema/t1-main", flags=flags@ entry=0) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ PerconaFT/ src/ydb 2e320 "./test/t1-main", txn=0x7f449d8a5200, env=0x7f44d3bd8600) at /mnt/workspace/ percona- server- 5.7-binaries- releas exp/debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ PerconaFT/ src/ydb- internal. h:269 env_dbrename( __toku_ db_env* , __toku_db_txn*, char const*, char const*, char const*, unsigned int) [clone .part.70] (flags=<optimized out>, newname=<optimized out>, dbname=0x0, fname=0x7f449d8 2e320 "./test/t1-main", txn=< percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ PerconaFT/ src/ydb. cc:1366 env_dbrename( __toku_ db_env* , __toku_db_txn*, char const*, char const*, char const*, unsigned int) [clone .4641] (env=0x7f44d3bd 8600, txn=<optimized out>, fname=0x7f449d8 2e320 "./test/t1-main", dbname=0x0, newname=<optimi percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ PerconaFT/ src/ydb. cc:1352 :delete_ or_rename_ dictionary (this=this@ entry=0x7f449d8 7f030, from_name= from_name@ entry=0x7f44e05 9d2c0 "./test/t1", to_name= to_name@ entry=0x7f44e05 9d4d0 "./nema/t1", secondary_ name=secondary_ name 0x7f44d29bc0e7 "main", is_key= is_key@ entry=false, txn=0x7f449d8a5300, is_delete= is_delete@ entry=false) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb :delete_ or_rename_ table (this=this@ entry=0x7f449d8 7f030, from_name= from_name@ entry=0x7f44e05 9d2c0 "./test/t1", to_name= to_name@ entry=0x7f44e05 9d4d0 "./nema/t1", is_delete= is_delete@ entry=false) a percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ tokudb/ ha_tokudb. cc:7646 :rename_ table (this=0x7f449d8 7f030, from=0x7f44e059d2c0 "./test/t1", to=0x7f44e059d4d0 "./nema/t1") at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- serve 10/storage/ tokudb/ ha_tokudb. cc:7741 entry=0x7f44c67 aade0, old_db= 0x7f449d8289a0 "test", old_name= 0x7f449d8289a8 "t1", new_db= 0x7f449d828f60 "nema", new_name= 0x7f449d828f68 "t1", flags=flags@ entry=0) at /mnt/work server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ sql_table. cc:5769 rename_ or_index_ change (thd=thd@ entry=0x7f449d8 16000, table_list= 0x7f449d8289e0, keys_onoff= <optimized out>, alter_ctx= alter_ctx@ entry=0x7f44e05 9f500) at /mnt/workspace/ percona- server- 5.7-binaries- r label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ sql_table. cc:8985 entry=0x7f449d8 16000, new_db=<optimized out>, new_name= 0x7f449d828f68 "t1", create_ info=create_ info@entry= 0x7f44e05a00d0, table_list= table_list@ entry=0x7f449d8 289e0, alter_info=a entry=0x7f44e05 a0000) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ sql_table. cc:9538 alter_table: :execute (this=<optimized out>, thd=0x7f449d816000) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ sql_alter. cc:320 command (thd=thd@ entry=0x7f449d8 16000, first_level= first_level@ entry=true) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ sql_p entry=0x7f449d8 16000, parser_ state=parser_ state@entry= 0x7f44e05a1710) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ sql entry=0x7f449d8 16000, com_data= com_data@ entry=0x7f44e05 a1db0, command=COM_QUERY) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5 sql/sql_ parse.cc: 1447 entry=0x7f449d8 16000) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ sql_parse. cc:1010 entry=0x7f44c67 9df70) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/sql/ conn_handler/ connection_ handler_ per_thread. cc b120) at /mnt/workspace/ percona- server- 5.7-binaries- release/ label_exp/ debian- wheezy- x64/percona- server- 5.7.16- 10/storage/ perfschema/ pfs.cc: 2188 2700) at pthread_ create. c:333 unix/sysv/ linux/x86_ 64/clone. S:109
#0 __pthread_kill (threadid=
#1 0x0000000000943fad in handle_fatal_signal (sig=6) at /mnt/workspace/
#2 <signal handler called>
#3 0x00007f44de067428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/
#4 0x00007f44de06902a in __GI_abort () at abort.c:89
#5 0x00007f44d28d6578 in toku_do_
7
#6 0x00007f44d291e015 in toku_do_
12__FUNCTION_
=line@entry=2917, caller_
#7 0x00007f44d297f88a in can_acquire_
PerconaFT/
#8 env_dbrename(
in", dbname=
.cc:3138
#9 0x00007f44d29403a7 in env_dbrename (flags=<optimized out>, newname=<optimized out>, dbname=0x0, fname=0x7f449d8
e/label_
#10 locked_
optimized out>, env=0x7f44d3bd8600) at /mnt/workspace/
#11 locked_
zed out>, flags=<optimized out>) at /mnt/workspace/
#12 0x00007f44d28a8f57 in ha_tokudb:
@entry=
/ha_tokudb.cc:7576
#13 0x00007f44d28aa470 in ha_tokudb:
t /mnt/workspace/
#14 0x00007f44d28ac1eb in ha_tokudb:
r-5.7.16-
#15 0x0000000000e57b69 in mysql_rename_table (base=base@
space/percona-
#16 0x000000000090d15d in simple_
elease/
#17 0x0000000000e5a7a2 in mysql_alter_table (thd=thd@
lter_info@
#18 0x0000000000f3bae8 in Sql_cmd_
#19 0x0000000000df6814 in mysql_execute_
arse.cc:5065
#20 0x0000000000dfa2d5 in mysql_parse (thd=thd@
_parse.cc:5838
#21 0x0000000000dfb551 in dispatch_command (thd=thd@
.7.16-10/
#22 0x0000000000dfbccd in do_command (thd=thd@
#23 0x0000000000eb26e4 in handle_connection (arg=arg@
:312
#24 0x000000000133b194 in pfs_spawn_thread (arg=0x7f44d57a
#25 0x00007f44dffbb70a in start_thread (arg=0x7f44e05a
#26 0x00007f44de13882d in clone () at ../sysdeps/
restart and reconnect:
mysql> select * from test.t1;
+------+
| a |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)
PS 5.6.34: dir_per_ db'; ------- ------+ ------- + ------- ------+ ------- + ------- ------+ ------- +
==========
mysql> show variables like 'tokudb_
+------
| Variable_name | Value |
+------
| tokudb_dir_per_db | OFF |
+------
1 row in set (0.01 sec)
mysql> use test;
Database changed
mysql> create table t1 (a int) engine=TokuDB;
Query OK, 0 rows affected (0.34 sec)
mysql> insert into t1 values (1),(2),(3);
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> alter table test.t1 rename nema.t1;
ERROR 7 (HY000): Error on rename of './test/t1.frm' to './nema/t1.frm' (Errcode: 2 - No such file or directory)
mysql> select * from t1;
+------+
| a |
+------+
| 1 |
| 2 |
| 3 |
+------+
3 rows in set (0.00 sec)
mysql> show variables like '%version%';
| tokudb_version | 5.6.34-79.1