Initialize page 5th page of ibdata1 as FIL_PAGE_TYPE_TRX_SYS if it has wrong page type

Bug #1641426 reported by Sergei Glushchenko
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona XtraBackup moved to https://jira.percona.com/projects/PXB
Status tracked in 2.4
2.4
Fix Released
Medium
Sergei Glushchenko

Bug Description

Some older versions of MySQL did not bother to initialise page type field for pages which are not index pages.
See https://bugs.mysql.com/bug.php?id=76262 for some insight. The patch included into server does its best to properly initialise some of the pages which came from older mysql versions through the multiple upgrade processes.

It however is missing a bit about 5th page of ibdata1 always being of FIL_PAGE_TYPE_TRX_SYS type. This bug is to track and fix this issue. Having this page type unitialized may cause xtrabackup to crash on prepare with following stack trace (reproduced artifically):

my_print_stacktrace
handle_fatal_signal
_sigtramp
archive_write_vtable.inited
abort
ut_dbg_assertion_failed(char const*, char const*, unsigned long)
ib::fatal::~fatal()
ib::fatal::~fatal()
buf_dblwr_assert_on_corrupt_block(buf_block_t const*)
buf_dblwr_check_block(buf_block_t const*)
buf_dblwr_flush_buffered_writes()
buf_dblwr_add_to_batch(buf_page_t*)
buf_flush_write_block_low(buf_page_t*, buf_flush_t, bool)
buf_flush_page(buf_pool_t*, buf_page_t*, buf_flush_t, bool)
buf_flush_try_neighbors(page_id_t const&, buf_flush_t, unsigned long, unsigned long)
buf_flush_page_and_try_neighbors(buf_page_t*, buf_flush_t, unsigned long, unsigned long*)
buf_do_flush_list_batch(buf_pool_t*, unsigned long, unsigned long long)
buf_flush_batch(buf_pool_t*, buf_flush_t, unsigned long, unsigned long long)
buf_flush_do_batch(buf_pool_t*, buf_flush_t, unsigned long, unsigned long long, unsigned long*)
buf_flush_lists(unsigned long, unsigned long long, unsigned long*)
log_preflush_pool_modified_pages(unsigned long long)
log_checkpoint_margin()
log_check_margins()
log_free_check()
que_run_threads_low(que_thr_t*)
que_run_threads(que_thr_t*)
que_eval_sql(pars_info_t*, char const*, unsigned long, trx_t*)
row_merge_drop_temp_indexes()
recv_recovery_rollback_active()
innobase_start_or_create_for_mysql()
innodb_init()
xtrabackup_prepare_func()
main
start

Revision history for this message
Sergei Glushchenko (sergei.glushchenko) wrote :
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PXB-772

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.