mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03: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:
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);
|
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,
|
|||||||
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;
|
||||||
|
Reference in New Issue
Block a user