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

binlog_annotate_row_events not completely compatible with galera

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 10.0.14-galera
    • Fix Version/s: 5.5.43-galera, 10.0.17-galera
    • Component/s: Galera
    • Labels:
    • Environment:
      CentOS 6.5

      Description

      When using binlog_annotate_row_events in a galera cluster, row events in the binlog originating from the local node are annotated correctly. However, events originating on other nodes are annotated with an incorrect query.

      This makes sense since I don't think galera provides information about the query that generated an event. Without adding significant overhead to galera replication, the only thing I can think of for this would be to disable annotations for events originating from other nodes. This way, not every event would be annotated, but the ones that are would at least be correct.

      I attached some lightly redacted decoded binlog events. If needed, I can find some events I can leave intact with some more searching.

        Gliffy Diagrams

          Attachments

            Activity

            Show
            nirbhay_c Nirbhay Choubey added a comment - http://lists.askmonty.org/pipermail/commits/2015-March/007518.html
            Hide
            jplindst Jan Lindström added a comment -

            So I take this patch fixes the annotiation originating from other nodes. Patch is fine there is maybe a small error on test in following:

            ...
            +--echo # On node_2
            +--connection node_2
            +INSERT INTO t1 VALUES(2);
            +DELETE FROM t1 WHERE i = 1; // Here I think you mean i = 2; that will actually delete something
            
            Show
            jplindst Jan Lindström added a comment - So I take this patch fixes the annotiation originating from other nodes. Patch is fine there is maybe a small error on test in following: ... +--echo # On node_2 +--connection node_2 +INSERT INTO t1 VALUES(2); +DELETE FROM t1 WHERE i = 1; // Here I think you mean i = 2; that will actually delete something
            Hide
            nirbhay_c Nirbhay Choubey added a comment -

            Hi Jan Lindström! Yes, that was an omissions. While fixing it, I also found some of the rpl_group_info's
            members (reference in delete_or_keep_event_post_apply()) were not initialized. Fixed.

            http://lists.askmonty.org/pipermail/commits/2015-March/007524.html

            Show
            nirbhay_c Nirbhay Choubey added a comment - Hi Jan Lindström ! Yes, that was an omissions. While fixing it, I also found some of the rpl_group_info's members (reference in delete_or_keep_event_post_apply()) were not initialized. Fixed. http://lists.askmonty.org/pipermail/commits/2015-March/007524.html
            Show
            nirbhay_c Nirbhay Choubey added a comment - https://github.com/MariaDB/server/commit/9af42db6138a555454b7631761b81f8d259f014e

              People

              • Assignee:
                nirbhay_c Nirbhay Choubey
                Reporter:
                bradjorgensen Brad Jorgensen
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: