Skip to content

PS-11202 [8.0]: Fix abrupt server termination when reading page tracking files fails#5988

Open
jakub-nowakowski-percona wants to merge 1 commit into
percona:8.0from
jakub-nowakowski-percona:PS-11202-8.0-corrupted-page-tracking-info-crash
Open

PS-11202 [8.0]: Fix abrupt server termination when reading page tracking files fails#5988
jakub-nowakowski-percona wants to merge 1 commit into
percona:8.0from
jakub-nowakowski-percona:PS-11202-8.0-corrupted-page-tracking-info-crash

Conversation

@jakub-nowakowski-percona
Copy link
Copy Markdown
Contributor

https://perconadev.atlassian.net/browse/PS-11202

When ib_page_* files in #ib_archive contain corrupted data or when reading them fails due to an I/O error, the server terminates with a fatal error in release builds or hits an assertion in debug builds. Replace all fatal os_file_read calls in the page archiver with os_file_read_no_error_handling, convert unsafe assertions on file data to runtime checks, and propagate errors gracefully so the server logs a warning and continues as if page tracking were unavailable.

…ing files fails

https://perconadev.atlassian.net/browse/PS-11202

When ib_page_* files in #ib_archive contain corrupted data or when reading them
fails due to an I/O error, the server terminates with a fatal error in release
builds or hits an assertion in debug builds. Replace all fatal os_file_read
calls in the page archiver with os_file_read_no_error_handling, convert unsafe
assertions on file data to runtime checks, and propagate errors gracefully so
the server logs a warning and continues as if page tracking were unavailable.
@jakub-nowakowski-percona
Copy link
Copy Markdown
Contributor Author

Copy link
Copy Markdown
Contributor

@satya-bodapati satya-bodapati left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As discussed on slack, please check during recovery, an ERROR is thrown (not a warning). it is big enough deal for user to know that page trackign is not initialized.

Please grep for this error after the startup and also add queries to show all page tracking queries respond with -1

arch_oper_mutex_exit();
ut_d(ut_error);
ut_o(return);
ut_o(return );
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

modified by mistake?

Arch_File_Ctx Arch_Group::s_dblwr_file_ctx;

Arch_Group::~Arch_Group() {
ut_ad(!m_is_active);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we instead make m_is_active() to false on error paths?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants