Uploaded image for project: 'Percona XtraBackup'
  1. Percona XtraBackup
  2. PXB-772

LP #1641426: Initialize page 5th page of ibdata1 as FIL_PAGE_TYPE_TRX_SYS if it has wrong page type

Details

    • Bug
    • Status: Done
    • High
    • Resolution: Fixed
    • None
    • None
    • None

    Description

      **Reported in Launchpad by Sergei Glushchenko last update 22-11-2016 16:27:00

      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

      Attachments

        Activity

          People

            Unassigned Unassigned
            lpjirasync lpjirasync (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Smart Checklist