Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MDEV-35394 Innochecksum misinterprets freed undo pages #3636

Open
wants to merge 1 commit into
base: 10.6
Choose a base branch
from

Conversation

Thirunarayanan
Copy link
Member

  • The Jira issue number for this PR is: MDEV-35394

Description

  • Innochecksum misinterprets the freed undo log pages as active one. This leads the user to think there are too many undo log pages exist.

  • Innochecksum can safely assume the undo log 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.

How can this PR be tested?

./mtr innodb.innochecksum_undo_page

Basing the PR against the correct MariaDB version

  • This is a new feature or a refactoring, and the PR is based against the main branch.
  • This is a bug fix, and the PR is based against the earliest maintained branch in which the bug can be reproduced.

PR quality check

  • I checked the CODING_STANDARDS.md file and my PR conforms to this where appropriate.
  • For any trivial modifications to the PR, I am ok with the reviewer making the changes themselves.

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@Thirunarayanan Thirunarayanan force-pushed the 10.6-MDEV-35394 branch 2 times, most recently from 29e04c6 to d93ade0 Compare November 18, 2024 08:49
extra/innochecksum.cc Outdated Show resolved Hide resolved
extra/innochecksum.cc Outdated Show resolved Hide resolved
mysql-test/suite/innodb/t/innochecksum_undo_page.test Outdated Show resolved Hide resolved
@Thirunarayanan Thirunarayanan force-pushed the 10.6-MDEV-35394 branch 3 times, most recently from 532eed6 to e95959e Compare November 21, 2024 09:34
extra/innochecksum.cc Outdated Show resolved Hide resolved
extra/innochecksum.cc Outdated Show resolved Hide resolved
extra/innochecksum.cc Outdated Show resolved Hide resolved
extra/innochecksum.cc Outdated Show resolved Hide resolved
extra/innochecksum.cc Outdated Show resolved Hide resolved
mysql-test/suite/innodb/t/innochecksum_undo_page.test Outdated Show resolved Hide resolved
extra/innochecksum.cc Outdated Show resolved Hide resolved
@Thirunarayanan Thirunarayanan force-pushed the 10.6-MDEV-35394 branch 3 times, most recently from 3390619 to ff36b28 Compare November 25, 2024 07:00
- 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

3 participants