-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDEV-35394 Innochecksum misinterprets freed pages
- Innochecksum misinterprets the freed pages as active one. This leads the user to think there are too many valid pages exist. - To avoid this confusion, innochecksum introduced one more option --skip-freed-pages and -r to avoid the freed pages while dumping or printing the summary of the tablespace. - Innochecksum can safely assume the page is freed if the respective extent doesn't belong to a segment and marked as freed in XDES_BITMAP in extent descriptor page. - Innochecksum shouldn't assume that zero-filled page as extent descriptor page.
- Loading branch information
1 parent
26597b9
commit ff36b28
Showing
6 changed files
with
67 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
SET GLOBAL INNODB_FILE_PER_TABLE= 0; | ||
CREATE TABLE t1(f1 INT NOT NULL)ENGINE=InnoDB; | ||
INSERT INTO t1 VALUES(1); | ||
DROP TABLE t1; | ||
SET GLOBAL innodb_fast_shutdown=0; | ||
# Run the innochecksum to display undo log pages | ||
FOUND 1 /Undo page state: 0 active, [1-9]+ cached, 0 to_purge, 0 prepared, 0 other/ in result.log | ||
# Run the innochecksum with --skip-freed-pages | ||
FOUND 1 /Undo page state: 0 active, 0 cached, 0 to_purge, 0 prepared, 0 other/ in result.log | ||
# restart |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
--innodb_undo_tablespaces=0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--source include/have_innodb.inc | ||
--source include/not_embedded.inc | ||
let MYSQLD_DATADIR= `SELECT @@datadir`; | ||
|
||
SET GLOBAL INNODB_FILE_PER_TABLE= 0; | ||
CREATE TABLE t1(f1 INT NOT NULL)ENGINE=InnoDB; | ||
INSERT INTO t1 VALUES(1); | ||
DROP TABLE t1; | ||
SET GLOBAL innodb_fast_shutdown=0; | ||
--source include/shutdown_mysqld.inc | ||
|
||
--echo # Run the innochecksum to display undo log pages | ||
let $resultlog=$MYSQLTEST_VARDIR/tmp/result.log; | ||
let SEARCH_FILE = $MYSQLTEST_VARDIR/tmp/result.log; | ||
exec $INNOCHECKSUM -S $MYSQLD_DATADIR/ibdata1 > $resultlog; | ||
let SEARCH_PATTERN= Undo page state: 0 active, [1-9]+ cached, 0 to_purge, 0 prepared, 0 other; | ||
--source include/search_pattern_in_file.inc | ||
|
||
--echo # Run the innochecksum with --skip-freed-pages | ||
exec $INNOCHECKSUM -S -r $MYSQLD_DATADIR/ibdata1 > $resultlog; | ||
let SEARCH_PATTERN= Undo page state: 0 active, 0 cached, 0 to_purge, 0 prepared, 0 other; | ||
--source include/search_pattern_in_file.inc | ||
--remove_file $resultlog | ||
--source include/start_mysqld.inc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters