summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThirunarayanan Balathandayuthapani <thiru@mariadb.com>2019-02-19 14:47:10 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2019-02-19 12:18:50 +0200
commit88b6dc4db5567951f9c0d0baa6e965d44a7130b1 (patch)
tree5e142a2fb1fea4244fc7cef194f46431b18a4d31
parentaf6fdc13072cc310cf17fd3b28c749515d9c563c (diff)
downloadmariadb-git-88b6dc4db5567951f9c0d0baa6e965d44a7130b1.tar.gz
MDEV-18639 Assertion failure upon attempt to start with lower number of undo tablespaces
trx_rseg_t::is_persistent(): Correct a bogus debug assertion.
-rw-r--r--mysql-test/suite/innodb/r/undo_truncate_recover.result1
-rw-r--r--mysql-test/suite/innodb/t/undo_truncate_recover.test3
-rw-r--r--storage/innobase/include/trx0rseg.h2
3 files changed, 4 insertions, 2 deletions
diff --git a/mysql-test/suite/innodb/r/undo_truncate_recover.result b/mysql-test/suite/innodb/r/undo_truncate_recover.result
index ae33474e00d..e1b6a67368b 100644
--- a/mysql-test/suite/innodb/r/undo_truncate_recover.result
+++ b/mysql-test/suite/innodb/r/undo_truncate_recover.result
@@ -9,6 +9,7 @@ update t1 set c = 'MariaDB';
update t1 set c = 'InnoDB';
set global debug_dbug = '+d,ib_undo_trunc';
commit;
+call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces");
call mtr.add_suppression("InnoDB: The transaction log size is too large");
SET GLOBAL innodb_fast_shutdown=0;
FOUND 1 /ib_undo_trunc/ in mysqld.1.err
diff --git a/mysql-test/suite/innodb/t/undo_truncate_recover.test b/mysql-test/suite/innodb/t/undo_truncate_recover.test
index fb901bc4259..e6f8afb7857 100644
--- a/mysql-test/suite/innodb/t/undo_truncate_recover.test
+++ b/mysql-test/suite/innodb/t/undo_truncate_recover.test
@@ -38,13 +38,14 @@ update t1 set c = 'MariaDB';
update t1 set c = 'InnoDB';
eval set global debug_dbug = '+d,$SEARCH_PATTERN';
commit;
+call mtr.add_suppression("InnoDB: innodb_undo_tablespaces=0 disables dedicated undo log tablespaces");
# FIXME: remove this work-around, and generate less log!
call mtr.add_suppression("InnoDB: The transaction log size is too large");
SET GLOBAL innodb_fast_shutdown=0;
--source include/shutdown_mysqld.inc
--source include/search_pattern_in_file.inc
# FIXME: remove this work-around, and generate less log!
---let $restart_parameters= --innodb-buffer-pool-size=16m
+--let $restart_parameters= --innodb-buffer-pool-size=16m --innodb-undo-tablespaces=1
--source include/start_mysqld.inc
drop table t1;
diff --git a/storage/innobase/include/trx0rseg.h b/storage/innobase/include/trx0rseg.h
index 48c5133644c..5df41bde48c 100644
--- a/storage/innobase/include/trx0rseg.h
+++ b/storage/innobase/include/trx0rseg.h
@@ -213,7 +213,7 @@ struct trx_rseg_t {
|| (srv_undo_space_id_start > 0
&& space >= srv_undo_space_id_start
&& space <= srv_undo_space_id_start
- + srv_undo_tablespaces_active)
+ + srv_undo_tablespaces_open)
|| !srv_was_started);
return(space != SRV_TMP_SPACE_ID);
}