mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-11835: InnoDB: Failing assertion: free_slot != NULL on
restarting server with encryption and read-only buf0buf.cc: Temporary slots used in encryption was calculated by read_threads * write_threads. However, in read-only mode write_threads is zero. Correct way is to calculate (read_threads + write_threads) * max pending IO requests.
This commit is contained in:
3
mysql-test/suite/encryption/t/innodb-read-only.opt
Normal file
3
mysql-test/suite/encryption/t/innodb-read-only.opt
Normal file
@ -0,0 +1,3 @@
|
||||
--innodb-encrypt-tables=1
|
||||
--innodb-encryption-threads=4
|
||||
--innodb-tablespaces-encryption
|
34
mysql-test/suite/encryption/t/innodb-read-only.test
Normal file
34
mysql-test/suite/encryption/t/innodb-read-only.test
Normal file
@ -0,0 +1,34 @@
|
||||
--source suite/encryption/include/have_file_key_management_plugin.inc
|
||||
--source include/have_innodb.inc
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--echo # Wait max 10 min for key encryption threads to encrypt all spaces
|
||||
let $cnt=600;
|
||||
while ($cnt)
|
||||
{
|
||||
let $success=`SELECT COUNT(*) = 0 FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION WHERE MIN_KEY_VERSION = 0`;
|
||||
if ($success)
|
||||
{
|
||||
let $cnt=0;
|
||||
}
|
||||
if (!$success)
|
||||
{
|
||||
real_sleep 1;
|
||||
dec $cnt;
|
||||
}
|
||||
}
|
||||
if (!$success)
|
||||
{
|
||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION;
|
||||
SHOW STATUS LIKE 'innodb_encryption%';
|
||||
-- die Timeout waiting for encryption threads
|
||||
}
|
||||
--echo # Success!
|
||||
|
||||
#
|
||||
# MDEV-11835: InnoDB: Failing assertion: free_slot != NULL on
|
||||
# restarting server with encryption and read-only
|
||||
#
|
||||
--let $restart_parameters= --innodb-read-only=1 --innodb-encrypt-tables=1
|
||||
--source include/restart_mysqld.inc
|
||||
--echo # All done
|
Reference in New Issue
Block a user