pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves
Bug #938068 reported by
Max Bowsher
This bug affects 5 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Toolkit moved to https://jira.percona.com/projects/PT |
Fix Released
|
Medium
|
Brian Fraser |
Bug Description
If you use pt-table-checksum in --replicate mode on a replication topology like A --> B --> C, then pt-table-checksum will correctly change the binlog_format on A, but B will binlog the checksum queries in row format, which can lead to either false confidence thta C is checksummed correctly, or a break in replication between B and C.
Perhaps pt-table-checksum should, if changing the binlog_format, also check whether any path-length-1 slaves have path-length-2 slaves, and error if this is the case, unless the user passes an option to say they acknowledge this problem exists.
Related branches
lp:~percona-toolkit-dev/percona-toolkit/fix-938068-ptc-slave-binlog-formats
- Daniel Nichter: Approve
-
Diff: 99 lines (+63/-1)2 files modifiedbin/pt-table-checksum (+34/-1)
t/pt-table-checksum/bugs.t (+29/-0)
lp:~percona-toolkit-dev/percona-toolkit/fix-ptc-slave-binglog-formats-on-5.0
- Daniel Nichter: Approve
-
Diff: 101 lines (+40/-28)2 files modifiedbin/pt-table-checksum (+12/-4)
t/pt-table-checksum/bugs.t (+28/-24)
tags: | added: binlog-format breaks-replication pt-table-checksum |
summary: |
- pt-table-checksum --replicate will silently do the wrong thing with non- - STATEMENT binlog_format and slaves-of-slaves + pt-table-checksum doesn't set or check binlog_format on slaves |
tags: | added: mysql-bug |
Changed in percona-toolkit: | |
status: | New → Triaged |
Changed in percona-toolkit: | |
assignee: | nobody → Brian Fraser (fraserbn) |
summary: |
- pt-table-checksum doesn't warn if binlog_format=row on slaves + pt-table-checksum doesn't warn if binlog_format=row or mixed on slaves |
Changed in percona-toolkit: | |
milestone: | none → 2.1.5 |
Changed in percona-toolkit: | |
importance: | Undecided → Medium |
Changed in percona-toolkit: | |
status: | Triaged → In Progress |
Changed in percona-toolkit: | |
status: | In Progress → Fix Committed |
Changed in percona-toolkit: | |
status: | In Progress → Fix Committed |
Changed in percona-toolkit: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
There's some debate with Oracle, which is not yet resolved, over whether replication is doing the Right Thing with the binlog_format setting through multiple levels of replication. I agree that the solution to this is to make pt-table-checksum abort and warn if any replica has binlog_format = row.