mariadb/mysql-test/suite/innodb/t/flush.test
Marko Mäkelä 7f04686a2a MDEV-24049 InnoDB: Failing assertion: node->is_open() in fil_space_t::flush_low
As part of MDEV-23855, we eliminated fil_system.LRU
and changed the way how InnoDB data files are opened.
We are also enforcing the innodb_open_files limit when new
data files are created.

The function fil_space_t::flush() would be invoked by
row_quiesce_table_start(). If the table was already in clean state,
it is possible that the data file is not open.

fil_space_t::flush_low(): If the data file is not open,
check with a debug assertion that there are no unflushed changes,
and carry on.

Reviewed by: Eugene Kosov and Thirunarayanan Balathandayuthapani
2020-10-29 09:15:35 +02:00

19 lines
618 B
Text

--source include/have_innodb.inc
SELECT @@GLOBAL.innodb_open_files;
CREATE TABLE t0 (a INT) ENGINE=InnoDB;
# Ensure that the created table t0 is clean.
FLUSH TABLE t0 WITH READ LOCK;
UNLOCK TABLES;
CREATE TABLE t1 (a INT) ENGINE=InnoDB;
CREATE TABLE t2 (a INT) ENGINE=InnoDB;
CREATE TABLE t3 (a INT) ENGINE=InnoDB;
CREATE TABLE t4 (a INT) ENGINE=InnoDB;
CREATE TABLE t5 (a INT) ENGINE=InnoDB;
CREATE TABLE t6 (a INT) ENGINE=InnoDB;
CREATE TABLE t7 (a INT) ENGINE=InnoDB;
# Now, the data file for t0 should not be open anymore.
FLUSH TABLE t0 WITH READ LOCK;
UNLOCK TABLES;
DROP TABLE t0, t1, t2, t3, t4, t5, t6, t7;