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

Correctly handle GTID event group for stand-alone multi-table ROW events

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      When a statement is binlogged stand-alone (as opposed to bracketed by
      BEGIN/COMMIT or BEGIN/XID), the GTID code needs to correctly detect the end of
      the event group without the availability of COMMIT or XID.

      In row-based binlogging with multi-table updates, multiple row events can be
      logged in a single stand-alone event group. The last such row event has a
      special flag that marks the end of the group.

      The GTID code must correctly detect and act on this flag (currently it does
      not).

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            knielsen Kristian Nielsen added a comment -

            As far as I could determine in the code, it is not actually possible to get a
            stand-alone Rows_log_event in the binlog. It will always be bracketed by
            GTID ... COMMIT/ROLLBACK/XID.

            This makes this bug a non-issue - the event group will never be terminated by
            a rows_log_event with the STMT_END_F set.

            So it does not seem worth it to "fix" - it would involve passing in the byte
            buffer containing the actual event, and locating the flag inside - all of
            which will be dead code.

            Show
            knielsen Kristian Nielsen added a comment - As far as I could determine in the code, it is not actually possible to get a stand-alone Rows_log_event in the binlog. It will always be bracketed by GTID ... COMMIT/ROLLBACK/XID. This makes this bug a non-issue - the event group will never be terminated by a rows_log_event with the STMT_END_F set. So it does not seem worth it to "fix" - it would involve passing in the byte buffer containing the actual event, and locating the flag inside - all of which will be dead code.

              People

              • Assignee:
                knielsen Kristian Nielsen
                Reporter:
                knielsen Kristian Nielsen
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: