Commit 88cbe2f0 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-18496 Crash when Aria encryption is enabled but plugin not available

wait_while_table_is_used() should return an error if handler::extra() fails
parent e6cb263e
call mtr.add_suppression('Unknown key id 1. Can''t continue');
set global aria_encrypt_tables= 1;
create table t1 (pk int primary key, a int, key(a)) engine=aria transactional=1;
alter table t1 disable keys;
insert into t1 values (1,1);
alter table t1 enable keys;
ERROR HY000: Unknown key id 1. Can't continue!
drop table t1;
set global aria_encrypt_tables= default;
#
# MDEV-18496 Crash when Aria encryption is enabled but plugin not available
#
call mtr.add_suppression('Unknown key id 1. Can''t continue');
set global aria_encrypt_tables= 1;
create table t1 (pk int primary key, a int, key(a)) engine=aria transactional=1;
alter table t1 disable keys;
insert into t1 values (1,1);
error 192;
alter table t1 enable keys;
drop table t1;
set global aria_encrypt_tables= default;
...@@ -1892,7 +1892,7 @@ bool wait_while_table_is_used(THD *thd, TABLE *table, ...@@ -1892,7 +1892,7 @@ bool wait_while_table_is_used(THD *thd, TABLE *table,
FALSE); FALSE);
/* extra() call must come only after all instances above are closed */ /* extra() call must come only after all instances above are closed */
if (function != HA_EXTRA_NOT_USED) if (function != HA_EXTRA_NOT_USED)
(void) table->file->extra(function); DBUG_RETURN(table->file->extra(function));
DBUG_RETURN(FALSE); DBUG_RETURN(FALSE);
} }
......
...@@ -31,7 +31,7 @@ int myrg_extra(MYRG_INFO *info,enum ha_extra_function function, ...@@ -31,7 +31,7 @@ int myrg_extra(MYRG_INFO *info,enum ha_extra_function function,
DBUG_PRINT("info",("function: %lu", (ulong) function)); DBUG_PRINT("info",("function: %lu", (ulong) function));
if (!info->children_attached) if (!info->children_attached)
DBUG_RETURN(1); DBUG_RETURN(0);
if (function == HA_EXTRA_CACHE) if (function == HA_EXTRA_CACHE)
{ {
info->cache_in_use=1; info->cache_in_use=1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment