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

last_commit_pos_offset set to wrong value after binlog rotate in group commit

Details

    Description

      Thanks to Jonas Oreland who found this in the code:

       

      >> > @@ -7387,6 +7434,10 @@
      >> MYSQL_BIN_LOG::trx_group_commit_leader(group_commit_entry *leader)
      >> >
      >> > DEBUG_SYNC(leader->thd, "commit_before_get_LOCK_commit_ordered");
      >> > mysql_mutex_lock(&LOCK_commit_ordered);
      >> > + /**
      >> > + * TODO(jonaso): Check with Kristian,
      >> > + * if we rotate:d above, this offset is "wrong"
      >> > + */
      >> > last_commit_pos_offset= commit_offset;
      >>
      >> Agree, good catch, I think.
      >> If we rotate, we already update last_commit_pos_file and _offset. So the code
      >> needs to remember if it rotated, and skip the errorneous offset update in this
      >> case.

      This happens during group commit, if we rotate the binlog as part of the group
      commit due to max binlog file size reached.

      Attachments

        Activity

          http://lists.askmonty.org/pipermail/commits/2015-February/007463.html

          BTW, this bug only affects non-transactional commits.

          knielsen Kristian Nielsen added a comment - http://lists.askmonty.org/pipermail/commits/2015-February/007463.html BTW, this bug only affects non-transactional commits.

          People

            knielsen Kristian Nielsen
            knielsen Kristian Nielsen
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.