Commit 08bc7ee0 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-25792 server hangs on early shutdown if InnoDB needs to purge indexed virtual columns

if the server isn't started and innodb initiated a shutdown process -
don't wait for the server to start, it won't
parent 4777097f
call mtr.add_suppression('SQL_ERROR_LOG');
call mtr.add_suppression('Failed to initialize plugins');
call mtr.add_suppression('Aborting');
create table t1(a int primary key, b int as (100-a*a), index(b)) engine=innodb;
insert t1 (a) values(1),(2),(3);
start transaction;
select * from t1 order by a;
a b
1 99
2 96
3 91
connect con1, localhost, root;
delete from t1 where a=2;
flush tables;
connection default;
# Kill the server
# Failed restart
# Start the server
# restart
select * from t1 order by a;
a b
1 99
3 91
drop table t1;
source include/have_innodb.inc;
# need to restart server
source include/not_embedded.inc;
call mtr.add_suppression('SQL_ERROR_LOG');
call mtr.add_suppression('Failed to initialize plugins');
call mtr.add_suppression('Aborting');
if (!$SQL_ERRLOG_SO) {
skip No SQL_ERROR_LOG plugin;
}
create table t1(a int primary key, b int as (100-a*a), index(b)) engine=innodb;
insert t1 (a) values(1),(2),(3);
start transaction;
select * from t1 order by a;
connect(con1, localhost, root);
delete from t1 where a=2;
flush tables;
connection default;
source include/kill_mysqld.inc;
echo # Failed restart;
error 1;
exec $MYSQLD_LAST_CMD --plugin-load-add=$SQL_ERRLOG_SO --sql-error-log=FORCE --sql-error-log-filename=$MYSQLTEST_VARDIR/nonexistent/nonexistent;
echo # Start the server;
source include/start_mysqld.inc;
select * from t1 order by a;
drop table t1;
......@@ -957,7 +957,7 @@ row_purge_parse_undo_rec(
if (!mysqld_server_started) {
node->close_table();
if (srv_shutdown_state > SRV_SHUTDOWN_INITIATED) {
if (srv_shutdown_state > SRV_SHUTDOWN_NONE) {
return(false);
}
os_thread_sleep(1000000);
......
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