Annotate rows events on slave doesnt' work without slave's binlog

Bug #872754 reported by Oleg Tsarev on 2011-10-12
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MariaDB
New
Undecided
Kristian Nielsen
Percona Server moved to https://jira.percona.com/projects/PS
Fix Released
High
Oleg Tsarev
Rnt-5.1
Fix Released
High
Oleg Tsarev

Bug 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)

Oleg Tsarev (tsarev) wrote :

Test-case for MariaDB

Oleg Tsarev (tsarev) wrote :

Test-case for Percona-Server rnt-5.1

Changed in percona-server:
assignee: nobody → Oleg Tsarev (tsarev)
status: New → Confirmed
importance: Undecided → High
tags: added: cr i13894
Changed in maria:
status: New → Confirmed
Kristian Nielsen (knielsen) wrote :

I think this will be fixed in mariadb when MWL#234 is merged.

Changed in maria:
assignee: nobody → Kristian Nielsen (knielsen)
status: Confirmed → New
Oleg Tsarev (tsarev) on 2011-10-13
Changed in percona-server:
status: Confirmed → Fix Committed
Changed in percona-server:
assignee: Oleg Tsarev (tsarev) → Alexey Kopytov (akopytov)
status: Fix Committed → In Progress
Stewart Smith (stewart) on 2011-10-14
Changed in percona-server:
assignee: Alexey Kopytov (akopytov) → Oleg Tsarev (tsarev)
status: In Progress → Fix Committed
Oleg Tsarev (tsarev) on 2011-10-24
Changed in percona-server:
status: Fix Committed → Fix Released

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-506

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers