mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-23836: Assertion `! is_set() || m_can_overwrite_status' in
Diagnostics_area::set_error_status (interrupted ALTER TABLE under LOCK) Analysis: KILL_QUERY is not ignored when local memory used exceeds maximum session memory. Hence the query proceeds, OK is sent and we end up reopening tables that are marked for reopen. During this, kill status is eventually checked and assertion failure happens during trying to send error message because OK has already been sent. Fix: Ok is already sent so statement has already executed. It is too late to give error. So ignore kill.
This commit is contained in:
@ -2661,6 +2661,28 @@ delete from t1 where a = 11;
|
||||
# cleanup
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-23836: Assertion `! is_set() || m_can_overwrite_status' in
|
||||
--echo # Diagnostics_area::set_error_status (interrupted ALTER TABLE under LOCK)
|
||||
--echo #
|
||||
|
||||
SET @max_session_mem_used_save= @@max_session_mem_used;
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
SELECT * FROM t1;
|
||||
|
||||
--error ER_NO_SUCH_TABLE
|
||||
ALTER TABLE x MODIFY xx INT;
|
||||
|
||||
SET SESSION max_session_mem_used= 8192;
|
||||
LOCK TABLE t1 WRITE;
|
||||
|
||||
ALTER TABLE t1 CHANGE COLUMN IF EXISTS b c INT;
|
||||
|
||||
SET SESSION max_session_mem_used = @max_session_mem_used_save;
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.5 tests
|
||||
--echo #
|
||||
|
Reference in New Issue
Block a user