Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-4322

Broken XID counting during binlog rotation

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.0.1
    • 10.0.2
    • None

    Description

      It looks like rotation of binlogs involves some broken logic involving . After binlog rotation MYSQL_BIN_LOG::do_checkpoint_request() is called. It calls ha_commit_checkpoint_request(), and from there for each engine that has commit_checkpoint_request function binlog_checkpoint_callback() is called. There mysql_bin_log.mark_xids_active() is called and corresponding mark_xid_done() is not called from anywhere.

      I don't understand why this problem is not exposed anywhere in the test suite but I was able to hit it like this:

      cmake . -DCMAKE_BUILD_TYPE=Debug
      make
      cd mysql-test/
      echo "--innodb" >> suite/sys_vars/t/rpl_max_binlog_size_func-master.opt
      ./mtr sys_vars.rpl_max_binlog_size_func

      After that I get "void MYSQL_BIN_LOG::cleanup(): Assertion `b->xid_count == 0' failed" during shutdown after the test.

      Attachments

        Activity

          People

            knielsen Kristian Nielsen
            pivanof Pavel Ivanov
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.