|
No need for crash recovery. mtr test case:
#
|
# MDEV-8173: InnoDB; Failing assertion: crypt_data->type == 1
|
#
|
|
SET GLOBAL innodb_encryption_threads = 4;
|
|
CREATE TABLE `table10_int_autoinc` (`col_int_key` int, pk int auto_increment, `col_int` int, key (`col_int_key` ),primary key (pk)) engine=innodb;
|
INSERT /*! IGNORE */ INTO table10_int_autoinc VALUES (NULL, NULL, -474021888) , (1, NULL, NULL) , (1141047296, NULL, NULL) , (NULL, NULL, NULL) , (NULL, NULL, 1) , (NULL, NULL, 9) , (0, NULL, 1225785344) , (NULL, NULL, 1574174720) , (2, NULL, NULL) , (6, NULL, 3);
|
|
CREATE TABLE `table1_int_autoinc` (`col_int_key` int, pk int auto_increment, `col_int` int,key (`col_int_key` ), primary key (pk)) engine=innodb;
|
|
CREATE TABLE `table0_int_autoinc` (`col_int_key` int, pk int auto_increment, `col_int` int, key (`col_int_key` ),primary key (pk)) engine=innodb;
|
|
INSERT /*! IGNORE */ INTO table1_int_autoinc VALUES (4, NULL, NULL);
|
INSERT IGNORE INTO `table0_int_autoinc` ( `col_int_key` ) VALUES ( 1 ), ( 3 ), ( 4 ), ( 1 );
|
INSERT IGNORE INTO `table1_int_autoinc` ( `col_int` ) VALUES ( 1 ), ( 0 ), ( 7 ), ( 9 );
|
INSERT IGNORE INTO `table10_int_autoinc` ( `col_int` ) VALUES ( 6 ), ( 2 ), ( 3 ), ( 6 );
|
|
--connect (con1,localhost,root,,test)
|
--connect (con2,localhost,root,,test)
|
|
--disable_abort_on_error
|
--disable_warnings
|
|
let $i = 2000;
|
while ($i)
|
{
|
connection con1;
|
send SET GLOBAL innodb_encrypt_tables = ON;
|
connection default;
|
CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table1_int_autoinc`;
|
connection con2;
|
send CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table10_int_autoinc`;
|
connection default;
|
send CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table0_int_autoinc`;
|
connection con1;
|
--reap;
|
send SET GLOBAL innodb_encrypt_tables = OFF;
|
connection con2;
|
--reap;
|
connection default;
|
--reap;
|
send CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table1_int_autoinc`;
|
connection con2;
|
send CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table10_int_autoinc`;
|
connection con1;
|
--reap;
|
send SET GLOBAL innodb_encrypt_tables = FORCE;
|
connection default;
|
--reap;
|
send CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table1_int_autoinc`;
|
connection con2;
|
--reap;
|
CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table10_int_autoinc`;
|
CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table0_int_autoinc`;
|
connection con1;
|
--reap;
|
connection default;
|
--reap;
|
dec $i;
|
}
|
|
connection default;
|
drop table if exists create_or_replace_t, table1_int_autoinc, table0_int_autoinc, table10_int_autoinc;
|
--disconnect con1;
|
--disconnect con2;
|
--enable_abort_on_error
|
--enable_warnings
|
SET GLOBAL innodb_encryption_threads = 0;
|
stack:
hread 1 (Thread 0x7f10503af700 (LWP 23667)):
|
#0 0x00007f1057d54621 in __pthread_kill (threadid=<optimized out>, signo=6) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:61
|
#1 0x00007f105a5912aa in my_write_core (sig=6) at /home/jan/mysql/10.1-encryption/mysys/stacktrace.c:456
|
#2 0x00007f1059f3e390 in handle_fatal_signal (sig=6) at /home/jan/mysql/10.1-encryption/sql/signal_handler.cc:266
|
#3 <signal handler called>
|
#4 0x00007f10573aecc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
|
#5 0x00007f10573b20d8 in __GI_abort () at abort.c:89
|
#6 0x00007f10573a7b86 in __assert_fail_base (fmt=0x7f10574f8830 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7f105a69ab76 "scheme->type == 1", file=file@entry=0x7f105a69ab28 "/home/jan/mysql/10.1-encryption/sql/encryption.cc", line=line@entry=172, function=function@entry=0x7f105a69ac60 <do_crypt(unsigned char const*, unsigned int, unsigned char*, unsigned int*, st_encryption_scheme*, unsigned int, unsigned int, unsigned int, unsigned long long, int (*)(unsigned char const*, unsigned int, unsigned char*, unsigned int*, unsigned char const*, unsigned int, unsigned char const*, unsigned int, int, unsigned int, unsigned int))::__PRETTY_FUNCTION__> "int do_crypt(const unsigned char*, unsigned int, unsigned char*, unsigned int*, st_encryption_scheme*, unsigned int, unsigned int, unsigned int, long long unsigned int, encrypt_decrypt_func)") at assert.c:92
|
#7 0x00007f10573a7c32 in __GI___assert_fail (assertion=0x7f105a69ab76 "scheme->type == 1", file=0x7f105a69ab28 "/home/jan/mysql/10.1-encryption/sql/encryption.cc", line=172, function=0x7f105a69ac60 <do_crypt(unsigned char const*, unsigned int, unsigned char*, unsigned int*, st_encryption_scheme*, unsigned int, unsigned int, unsigned int, unsigned long long, int (*)(unsigned char const*, unsigned int, unsigned char*, unsigned int*, unsigned char const*, unsigned int, unsigned char const*, unsigned int, int, unsigned int, unsigned int))::__PRETTY_FUNCTION__> "int do_crypt(const unsigned char*, unsigned int, unsigned char*, unsigned int*, st_encryption_scheme*, unsigned int, unsigned int, unsigned int, long long unsigned int, encrypt_decrypt_func)") at assert.c:101
|
#8 0x00007f1059ecd076 in do_crypt (src=0x7f1018004026 "+\360\004\273\266s!\324\331i\323O\026\022\316\071W^\005\366H7K\357\314CW\357\216\360s\260\222o\363\244\062\303\335\024\315S\374Mr\214\232\346\nF\360V\032\326u\357\033O\247x\356\333\276\025F\224\314OA\202h\311\221\312\320&9\260\345\310\063\017\064`v\356z", slen=16338, dst=0x7f1050e14026 "+\360\004\273\266s!\324\331i\323O\026\022\316\071W^\005\366H7K\357\314CW\357\216\360s\260\222o\363\244\062\303\335\024\315S\374Mr\214\232\346\nF\360V\032\326u\357\033O\247x\356\333\276\025F\224\314OA\202h\311\221\312\320&9\260\345\310\063\017\064`v\356z", dlen=0x7f10503ab254, scheme=0x7f105c1f5400, key_version=1, i32_1=0, i32_2=455, i64=18913978, crypt=0x7f105a5ae1bb <my_aes_decrypt_cbc(uchar const*, uint, uchar*, uint*, uchar const*, uint, uchar const*, uint, int)>) at /home/jan/mysql/10.1-encryption/sql/encryption.cc:172
|
#9 0x00007f1059ecd236 in encryption_scheme_decrypt (src=0x7f1018004026 "+\360\004\273\266s!\324\331i\323O\026\022\316\071W^\005\366H7K\357\314CW\357\216\360s\260\222o\363\244\062\303\335\024\315S\374Mr\214\232\346\nF\360V\032\326u\357\033O\247x\356\333\276\025F\224\314OA\202h\311\221\312\320&9\260\345\310\063\017\064`v\356z", slen=16338, dst=0x7f1050e14026 "+\360\004\273\266s!\324\331i\323O\026\022\316\071W^\005\366H7K\357\314CW\357\216\360s\260\222o\363\244\062\303\335\024\315S\374Mr\214\232\346\nF\360V\032\326u\357\033O\247x\356\333\276\025F\224\314OA\202h\311\221\312\320&9\260\345\310\063\017\064`v\356z", dlen=0x7f10503ab254, scheme=0x7f105c1f5400, key_version=1, i32_1=0, i32_2=455, i64=18913978) at /home/jan/mysql/10.1-encryption/sql/encryption.cc:211
|
#10 0x00007f105241765e in fil_space_decrypt (crypt_data=0x7f105c1f5400, src_frame=0x7f1018004000 "\177\002\343\256", page_size=16384, dst_frame=0x7f1050e14000 "\177\002\343\256") at /home/jan/mysql/10.1-encryption/storage/innobase/fil/fil0crypt.cc:798
|
#11 0x00007f1052417772 in fil_space_decrypt (space=0, src_frame=0x7f1018004000 "\177\002\343\256", page_size=16384, dst_frame=0x7f1050e14000 "\177\002\343\256") at /home/jan/mysql/10.1-encryption/storage/innobase/fil/fil0crypt.cc:843
|
#12 0x00007f10523a289d in buf_page_decrypt_after_read (bpage=0x7f1050665b40) at /home/jan/mysql/10.1-encryption/storage/innobase/buf/buf0buf.cc:5881
|
#13 0x00007f105239ed99 in buf_page_io_complete (bpage=0x7f1050665b40, evict=false) at /home/jan/mysql/10.1-encryption/storage/innobase/buf/buf0buf.cc:4246
|
#14 0x00007f10523bb18d in buf_read_page_low (err=0x7f10503ab47c, sync=true, mode=132, space=0, zip_size=0, unzip=0, tablespace_version=1, offset=455) at /home/jan/mysql/10.1-encryption/storage/innobase/buf/buf0rea.cc:216
|
#15 0x00007f10523bb6b7 in buf_read_page (space=0, zip_size=0, offset=455) at /home/jan/mysql/10.1-encryption/storage/innobase/buf/buf0rea.cc:414
|
#16 0x00007f105239b47f in buf_page_get_gen (space=0, zip_size=0, offset=455, rw_latch=2, guess=0x0, mode=10, file=0x7f10526a9fa8 "/home/jan/mysql/10.1-encryption/storage/innobase/include/trx0undo.ic", line=171, mtr=0x7f10503ab670) at /home/jan/mysql/10.1-encryption/storage/innobase/buf/buf0buf.cc:2764
|
#17 0x00007f10525f7044 in trx_undo_page_get (space=0, zip_size=0, page_no=455, mtr=0x7f10503ab670) at /home/jan/mysql/10.1-encryption/storage/innobase/include/trx0undo.ic:170
|
#18 0x00007f10525fa640 in trx_undo_reuse_cached (trx=0x7f1020002888, rseg=0x7f105c2188d8, type=1, trx_id=27132, xid=0x7f1020002a18, mtr=0x7f10503ab670) at /home/jan/mysql/10.1-encryption/storage/innobase/trx/trx0undo.cc:1681
|
#19 0x00007f10525fa9bc in trx_undo_assign_undo (trx=0x7f1020002888, type=1) at /home/jan/mysql/10.1-encryption/storage/innobase/trx/trx0undo.cc:1785
|
#20 0x00007f10525e163c in trx_undo_report_row_operation (flags=0, op_type=1, thr=0x7f10201f0888, index=0x7f10201ef8a8, clust_entry=0x7f10201b0e98, update=0x0, cmpl_info=0, rec=0x0, offsets=0x0, roll_ptr=0x7f10503ac168) at /home/jan/mysql/10.1-encryption/storage/innobase/trx/trx0rec.cc:1262
|
#21 0x00007f105236f11c in btr_cur_ins_lock_and_undo (flags=0, cursor=0x7f10503ac320, entry=0x7f10201b0e98, thr=0x7f10201f0888, mtr=0x7f10503ac3a0, inherit=0x7f10503ac1e0) at /home/jan/mysql/10.1-encryption/storage/innobase/btr/btr0cur.cc:1174
|
#22 0x00007f105236f761 in btr_cur_optimistic_insert (flags=0, cursor=0x7f10503ac320, offsets=0x7f10503ac2e0, heap=0x7f10503ac2f0, entry=0x7f10201b0e98, rec=0x7f10503ac2f8, big_rec=0x7f10503ac2e8, n_ext=0, thr=0x7f10201f0888, mtr=0x7f10503ac3a0) at /home/jan/mysql/10.1-encryption/storage/innobase/btr/btr0cur.cc:1394
|
#23 0x00007f1052550f8c in row_ins_clust_index_entry_low (flags=0, mode=2, index=0x7f10201ef8a8, n_uniq=0, entry=0x7f10201b0e98, n_ext=0, thr=0x7f10201f0888) at /home/jan/mysql/10.1-encryption/storage/innobase/row/row0ins.cc:2500
|
#24 0x00007f1052551fe4 in row_ins_clust_index_entry (index=0x7f10201ef8a8, entry=0x7f10201b0e98, thr=0x7f10201f0888, n_ext=0) at /home/jan/mysql/10.1-encryption/storage/innobase/row/row0ins.cc:2896
|
#25 0x00007f10525522fb in row_ins_index_entry (index=0x7f10201ef8a8, entry=0x7f10201b0e98, thr=0x7f10201f0888) at /home/jan/mysql/10.1-encryption/storage/innobase/row/row0ins.cc:2994
|
#26 0x00007f10525525bb in row_ins_index_entry_step (node=0x7f10201f0630, thr=0x7f10201f0888) at /home/jan/mysql/10.1-encryption/storage/innobase/row/row0ins.cc:3071
|
#27 0x00007f10525528cb in row_ins (node=0x7f10201f0630, thr=0x7f10201f0888) at /home/jan/mysql/10.1-encryption/storage/innobase/row/row0ins.cc:3211
|
#28 0x00007f1052552c2c in row_ins_step (thr=0x7f10201f0888) at /home/jan/mysql/10.1-encryption/storage/innobase/row/row0ins.cc:3336
|
#29 0x00007f10525691d2 in row_insert_for_mysql (mysql_rec=0x7f10201ef298 "\375\004", prebuilt=0x7f10201f0118) at /home/jan/mysql/10.1-encryption/storage/innobase/row/row0mysql.cc:1372
|
#30 0x00007f1052465f88 in ha_innodb::write_row (this=0x7f10201e8958, record=0x7f10201ef298 "\375\004") at /home/jan/mysql/10.1-encryption/storage/innobase/handler/ha_innodb.cc:7874
|
#31 0x00007f1059f4c321 in handler::ha_write_row (this=0x7f10201e8958, buf=0x7f10201ef298 "\375\004") at /home/jan/mysql/10.1-encryption/sql/handler.cc:5871
|
#32 0x00007f1059cf5299 in write_record (thd=0x7f105c0b8a70, table=0x7f10201ee670, info=0x7f1020014a50) at /home/jan/mysql/10.1-encryption/sql/sql_insert.cc:1854
|
#33 0x00007f1059cf9d0e in select_insert::send_data (this=0x7f1020014a10, values=...) at /home/jan/mysql/10.1-encryption/sql/sql_insert.cc:3619
|
#34 0x00007f1059d7da6e in end_send (join=0x7f1020014af8, join_tab=0x7f10200177c8, end_of_records=false) at /home/jan/mysql/10.1-encryption/sql/sql_select.cc:19104
|
#35 0x00007f1059d7b881 in evaluate_join_record (join=0x7f1020014af8, join_tab=0x7f1020017480, error=0) at /home/jan/mysql/10.1-encryption/sql/sql_select.cc:18208
|
#36 0x00007f1059d7b175 in sub_select (join=0x7f1020014af8, join_tab=0x7f1020017480, end_of_records=false) at /home/jan/mysql/10.1-encryption/sql/sql_select.cc:17983
|
#37 0x00007f1059d7a9c3 in do_select (join=0x7f1020014af8, fields=0x7f105c0bcff8, table=0x0, procedure=0x0) at /home/jan/mysql/10.1-encryption/sql/sql_select.cc:17640
|
#38 0x00007f1059d55e48 in JOIN::exec_inner (this=0x7f1020014af8) at /home/jan/mysql/10.1-encryption/sql/sql_select.cc:3098
|
#39 0x00007f1059d53119 in JOIN::exec (this=0x7f1020014af8) at /home/jan/mysql/10.1-encryption/sql/sql_select.cc:2397
|
#40 0x00007f1059d566ec in mysql_select (thd=0x7f105c0b8a70, rref_pointer_array=0x7f105c0bd158, tables=0x7f1020014228, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2416184064, result=0x7f1020014a10, unit=0x7f105c0bc7f0, select_lex=0x7f105c0bcee0) at /home/jan/mysql/10.1-encryption/sql/sql_select.cc:3326
|
#41 0x00007f1059d4c6c8 in handle_select (thd=0x7f105c0b8a70, lex=0x7f105c0bc728, result=0x7f1020014a10, setup_tables_done_option=0) at /home/jan/mysql/10.1-encryption/sql/sql_select.cc:373
|
#42 0x00007f1059d14d51 in mysql_execute_command (thd=0x7f105c0b8a70) at /home/jan/mysql/10.1-encryption/sql/sql_parse.cc:3379
|
#43 0x00007f1059d20c5b in mysql_parse (thd=0x7f105c0b8a70, rawbuf=0x7f10200138e8 "CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table1_int_autoinc`", length=83, parser_state=0x7f10503ae200) at /home/jan/mysql/10.1-encryption/sql/sql_parse.cc:7161
|
#44 0x00007f1059d0fea8 in dispatch_command (command=COM_QUERY, thd=0x7f105c0b8a70, packet=0x7f105c0bf5d1 "CREATE OR REPLACE TABLE `create_or_replace_t` AS SELECT * FROM `table1_int_autoinc`", packet_length=83) at /home/jan/mysql/10.1-encryption/sql/sql_parse.cc:1462
|
#45 0x00007f1059d0ec83 in do_command (thd=0x7f105c0b8a70) at /home/jan/mysql/10.1-encryption/sql/sql_parse.cc:1090
|
#46 0x00007f1059e3f9c9 in do_handle_one_connection (thd_arg=0x7f105c0b8a70) at /home/jan/mysql/10.1-encryption/sql/sql_connect.cc:1347
|
#47 0x00007f1059e3f721 in handle_one_connection (arg=0x7f105c0b8a70) at /home/jan/mysql/10.1-encryption/sql/sql_connect.cc:1258
|
#48 0x00007f105a1f0eff in pfs_spawn_thread (arg=0x7f105c0c48b0) at /home/jan/mysql/10.1-encryption/storage/perfschema/pfs.cc:1860
|
#49 0x00007f1057d4f182 in start_thread (arg=0x7f10503af700) at pthread_create.c:312
|
#50 0x00007f105747247d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
|
|