mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
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
This commit is contained in:
parent
e6cb263ef3
commit
88cbe2f081
4 changed files with 24 additions and 2 deletions
9
mysql-test/suite/maria/encrypt-no-key.result
Normal file
9
mysql-test/suite/maria/encrypt-no-key.result
Normal file
|
@ -0,0 +1,9 @@
|
|||
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;
|
13
mysql-test/suite/maria/encrypt-no-key.test
Normal file
13
mysql-test/suite/maria/encrypt-no-key.test
Normal file
|
@ -0,0 +1,13 @@
|
|||
#
|
||||
# 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,
|
|||
FALSE);
|
||||
/* extra() call must come only after all instances above are closed */
|
||||
if (function != HA_EXTRA_NOT_USED)
|
||||
(void) table->file->extra(function);
|
||||
DBUG_RETURN(table->file->extra(function));
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ int myrg_extra(MYRG_INFO *info,enum ha_extra_function function,
|
|||
DBUG_PRINT("info",("function: %lu", (ulong) function));
|
||||
|
||||
if (!info->children_attached)
|
||||
DBUG_RETURN(1);
|
||||
DBUG_RETURN(0);
|
||||
if (function == HA_EXTRA_CACHE)
|
||||
{
|
||||
info->cache_in_use=1;
|
||||
|
|
Loading…
Reference in a new issue