1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

MDEV-21892: Assertion ...row_get_rec_trx_id... failed on SELECT

btr_cur_upd_rec_in_place(): Invoke page_zip_rec_set_deleted()
for ROW_FORMAT=COMPRESSED pages, so that the change will be
written to the redo log.

This part of crash recovery was broken in
commit 08ba388713 (MDEV-12353).
This commit is contained in:
Marko Mäkelä
2020-03-09 11:32:31 +02:00
parent 57c592f74d
commit adb4117631
3 changed files with 47 additions and 9 deletions

View File

@@ -1,12 +1,21 @@
--source include/innodb_page_size_small.inc
--source include/not_embedded.inc
--disable_query_log
# This test kills the server, which could corrupt some mysql.* tables
# that are not created with ENGINE=InnoDB.
# Flush any non-InnoDB tables to prevent that from happening.
FLUSH TABLES;
--enable_query_log
--echo #
--echo # MDEV-21892 Assertion 'index != clust_index || row_get_rec_trx_id()'
--echo #
connect (con1,localhost,root);
CREATE TABLE t1 (pk INT PRIMARY KEY) ENGINE=InnoDB ROW_FORMAT=COMPRESSED;
INSERT INTO t1 VALUES (1),(2);
BEGIN;
--error ER_DUP_ENTRY
UPDATE t1 SET pk=1;
connection default;
--echo #
--echo # MDEV-12720 recovery fails with "Generic error"
@@ -25,6 +34,9 @@ COMMIT;
--let $shutdown_timeout=0
--source include/restart_mysqld.inc
disconnect con1;
SELECT * FROM t1;
DROP TABLE t1;
SELECT COUNT(*) from a;
DROP TABLE a;