pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Toolkit moved to https://jira.percona.com/projects/PT |
Fix Released
|
High
|
Brian Fraser |
Bug Description
on MMM monitor:
<pre>[root@baz ~]# pt-table-checksum --replicate test.checksum --empty-
Enter MySQL password:
foo.com has binlog_format STATEMENT but replica bar.com has binlog_format MIXED. This could cause pt-table-checksum to break replication. If you understand the risks, specify --no-check-
[root@brownsboro ~]# pt-table-checksum --version
pt-table-checksum 2.1.8</pre>
on foo:
<pre>
MariaDB [(none)]> select @@binlog_format
-> ;
+-----------------+
| @@binlog_format |
+-----------------+
| MIXED |
+-----------------+
1 row in set (0.00 sec)
[root@foo ~]# grep format /etc/my.cnf
binlog_format = mixed
[root@foo ~]# mysqld -V
mysqld Ver 5.2.12-
</pre>
on bar:
<pre>
MariaDB [(none)]> select @@binlog_format;
+-----------------+
| @@binlog_format |
+-----------------+
| MIXED |
+-----------------+
1 row in set (0.00 sec)
[root@bar ~]# grep format /etc/my.cnf
binlog_format = mixed
[root@bar ~]# mysqld -V
mysqld Ver 5.2.12-
</pre>
Am I missing something?
Related branches
- Daniel Nichter: Approve
-
Diff: 36 lines (+8/-7)2 files modifiedbin/pt-table-checksum (+7/-6)
t/pt-table-checksum/bugs.t (+1/-1)
description: | updated |
tags: | added: i29097 |
no longer affects: | percona-toolkit/2.2 |
no longer affects: | percona-toolkit/2.1 |
Changed in percona-toolkit: | |
status: | Triaged → In Progress |
milestone: | 2.2.1 → 2.1.9 |
tags: |
added: ambiguity error-message percona-29097 pt-table-checksum removed: i29097 |
Changed in percona-toolkit: | |
importance: | Medium → High |
summary: |
- pt-table-checksum mistakenly reports different binlog_format on master - and slave + pt-table-checksum: Confusing error message with binlog_format ROW or + MIXED on slave |
Changed in percona-toolkit: | |
status: | In Progress → Fix Committed |
Changed in percona-toolkit: | |
status: | Fix Committed → Fix Released |
This is actually explained in the documentation:
Replicas using row-based replication
pt- table-checksum requires statement-based replication, and it sets
"binlog_ format= STATEMENT" on the master, but due to a MySQL
limitation replicas do not honor this change. Therefore, checksums
will not replicate past any replicas using row-based replication
that are masters for further replicas.
The tool automatically checks the "binlog_format" on all servers. check-binlog- format" .
See "--[no]
So the error is expected if the slaves have MIXED format. I was going to mark this ticket as Not A Bug, but since this isn't the first time this message has caused confusion, we're obviously conveying things wrong, so I'll tag this for 2.1.9 and 2.2 and reword the error.