Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
N/A
-
None
Description
Stack trace from bb-10.1-jan-encryption commit 549ed8c69b29050135bcdd045870dccd56b46d3b |
#3 <signal handler called>
|
#4 0x00007f85f461d492 in page_cur_is_after_last (cur=0x7f85f3bcf978) at storage/xtradb/include/page0cur.ic:152
|
#5 0x00007f85f461d57c in page_cur_move_to_next (cur=0x7f85f3bcf978) at storage/xtradb/include/page0cur.ic:196
|
#6 0x00007f85f4621a6f in row_merge_read_clustered_index (trx=0x7f85db99a678, table=0x7f85db8f8070, old_table=0x7f85db981378, new_table=0x7f85db9815f8, online=true, index=0x7f85db81f070, fts_sort_idx=0x0, psort_info=0x0, files=0x7f85db860b78, key_numbers=0x7f85db81f078, n_index=1, add_cols=0x0, col_map=0x7f85db81f0c0, add_autoinc=18446744073709551615, sequence=..., block=0x7f85e98ff000 <Address 0x7f85e98ff000 out of bounds>, pct_cost=50) at storage/xtradb/row/row0merge.cc:1436
|
#7 0x00007f85f4626ef7 in row_merge_build_indexes (trx=0x7f85db99a678, old_table=0x7f85db981378, new_table=0x7f85db9815f8, online=true, indexes=0x7f85db81f070, key_numbers=0x7f85db81f078, n_indexes=1, table=0x7f85db8f8070, add_cols=0x0, col_map=0x7f85db81f0c0, add_autoinc=18446744073709551615, sequence=...) at storage/xtradb/row/row0merge.cc:3772
|
#8 0x00007f85f454a8be in ha_innobase::inplace_alter_table (this=0x7f85db87d088, altered_table=0x7f85db8f8070, ha_alter_info=0x7f85f3bd0630) at storage/xtradb/handler/handler0alter.cc:4076
|
#9 0x00007f85f41fb981 in handler::ha_inplace_alter_table (this=0x7f85db87d088, altered_table=0x7f85db8f8070, ha_alter_info=0x7f85f3bd0630) at sql/handler.h:3671
|
#10 0x00007f85f41f39eb in mysql_inplace_alter_table (thd=0x7f85e54dc070, table_list=0x7f85db8e4170, table=0x7f85db89ea70, altered_table=0x7f85db8f8070, ha_alter_info=0x7f85f3bd0630, inplace_supported=HA_ALTER_INPLACE_NO_LOCK_AFTER_PREPARE, target_mdl_request=0x7f85f3bd06a0, alter_ctx=0x7f85f3bd1230) at sql/sql_table.cc:7058
|
#11 0x00007f85f41f83ab in mysql_alter_table (thd=0x7f85e54dc070, new_db=0x7f85db8e4750 "test", new_name=0x0, create_info=0x7f85f3bd1e20, table_list=0x7f85db8e4170, alter_info=0x7f85f3bd1d90, order_num=0, order=0x0, ignore=false) at sql/sql_table.cc:8864
|
#12 0x00007f85f4268995 in Sql_cmd_alter_table::execute (this=0x7f85db8e4760, thd=0x7f85e54dc070) at sql/sql_alter.cc:325
|
#13 0x00007f85f413ddcb in mysql_execute_command (thd=0x7f85e54dc070) at sql/sql_parse.cc:5607
|
#14 0x00007f85f41420df in mysql_parse (thd=0x7f85e54dc070, rawbuf=0x7f85db8e4088 "alter table t1 engine=InnoDB", length=28, parser_state=0x7f85f3bd31a0) at sql/sql_parse.cc:7208
|
#15 0x00007f85f4130e63 in dispatch_command (command=COM_QUERY, thd=0x7f85e54dc070, packet=0x7f85eb3f5071 "alter table t1 engine=InnoDB", packet_length=28) at sql/sql_parse.cc:1475
|
#16 0x00007f85f412fb89 in do_command (thd=0x7f85e54dc070) at sql/sql_parse.cc:1097
|
#17 0x00007f85f4263ed1 in do_handle_one_connection (thd_arg=0x7f85e54dc070) at sql/sql_connect.cc:1350
|
#18 0x00007f85f4263c22 in handle_one_connection (arg=0x7f85e54dc070) at sql/sql_connect.cc:1262
|
#19 0x00007f85f4829fe7 in pfs_spawn_thread (arg=0x7f85e54d4d70) at storage/perfschema/pfs.cc:1860
|
#20 0x00007f85f3814b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
|
#21 0x00007f85f16a095d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
|
Test flow |
- start server with encryption and valid keys 1 and 4;
|
- create innodb table with key 4, insert some data;
|
- restart server with the same key 1 and different key 4;
|
- try to select from the table (error);
|
- try to discard tablespace (error);
|
- try to alter the table (ALTER TABLE .. ENGINE=InnoDB)
|
=> crash
|
Test case |
--source include/have_innodb.inc
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--shutdown_server
|
--source include/wait_until_disconnected.inc
|
|
--write_file $MYSQLTEST_VARDIR/keys1.txt
|
1;770A8A65DA156D24EE2A093277530142
|
4;770A8A65DA156D24EE2A093277530143
|
EOF
|
|
--exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys1.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--enable_reconnect
|
--source include/wait_until_connected_again.inc
|
|
CREATE TABLE t1 (pk INT PRIMARY KEY, f VARCHAR(8)) ENGINE=InnoDB ENCRYPTION_KEY_ID=4;
|
INSERT INTO t1 VALUES (1,'foo'),(2,'bar');
|
|
--exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--shutdown_server
|
--source include/wait_until_disconnected.inc
|
|
--write_file $MYSQLTEST_VARDIR/keys2.txt
|
1;770A8A65DA156D24EE2A093277530142
|
4;770A8A65DA156D24EE2A093277530144
|
EOF
|
|
--exec echo "restart:--innodb-encrypt-tables --innodb-stats-persistent --plugin-load-add=file_key_management.so --file-key-management --file-key-management-filename=$MYSQLTEST_VARDIR/keys2.txt" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
|
--enable_reconnect
|
--source include/wait_until_connected_again.inc
|
|
--error 0,ER_NO_SUCH_TABLE_IN_ENGINE
|
select * from t1;
|
--error 0,ER_NO_SUCH_TABLE_IN_ENGINE
|
alter table t1 discard tablespace;
|
alter table t1 engine=InnoDB;
|
Note: innodb_stats_persistent is important for the test flow, so it's reset to the default ON (normally MTR turns it off). An issue with its unexpected importance will be filed separately.