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

LP:872754 - Annotate rows events on slave doesnt' work without slave's binlog

    Details

    • Type: Bug
    • Status: Closed
    • Resolution: Fixed
    • Affects versions: None
    • Fix versions: 10.0.0
    • Components: None
    • Labels:
    • Sprint:

      Description

      master: --binlog_annotate_rows_log_events
      slave: --slave_annotate_rows_log_event --log_slave_updates=0

      slave fails with error:
      [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'log event entry exceeded max_allowed_packet; Increase max_allowed_packet on master', Error_code: 1236

      if master idle more than --slave_net_timeout.

      Test-case in attachment.

      I investigated it, and found the following:
      1) master doesn't replicate Annotate_rows_log_event to slave if one of the following is true:
      a) --replicate_annotate_rows_event is OFF
      b) --log_slave_updates is OFF
      2) While slave executes events, it calculates mi->master_log_pos (Exec_Master_Log_Pos).
      If master doesn't replicate Annotate_rows_log_event to slave, mi->master_log_pos is incorrect (less than log_pos-on-master to sizeof(Annotate_rows_log_event) that weren't sent from master to slave).
      3) After slave_net_timeout slave reconnects to master and sends mi->master_log_pos to it.
      As a result, master tries to read event from its log from incorrect position.

      Possible fixes:
      1) always replicate Annotate_rows_log_event from master to slave. If you do this, option "--replicate_annotate_rows_events" doesn't have sense (always true) and should be removed
      2) fix the Master Dump Thread - when "-replicate_annotate_rows_events" disabled or slave run with "log_slave_updates=0", master should notify slave about skipped events (probably as filtered event or send Rotate_log_event ) I don't sure what this is possible or correct fix (just idea)

        Attachments

          Activity

            People

            • Assignee:
              knielsen Kristian Nielsen
              Reporter:
              olegtsarev Oleg Tsarev (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: