pt-table-checksum: Confusing error message with binlog_format ROW or MIXED on slave

Bug #1105077 reported by Walter Heck
10
This bug affects 2 people
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-replicate-table --create-replicate-table --user maatkit --ask-pass 192.168.1.113
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-binlog-format to disable this 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-MariaDB-mariadb115-log for unknown-linux-gnu on x86_64 ((MariaDB - http://mariadb.com/))
</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-MariaDB-mariadb115-log for unknown-linux-gnu on x86_64 ((MariaDB - http://mariadb.com/))
</pre>

Am I missing something?

Related branches

Walter Heck (walterheck)
description: updated
Jaime Sicam (jssicam)
tags: added: i29097
Revision history for this message
Brian Fraser (fraserbn) wrote :

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.
           See "--[no]check-binlog-format" .

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.

Changed in percona-toolkit:
status: New → Triaged
importance: Undecided → Medium
assignee: nobody → Brian Fraser (fraserbn)
milestone: none → 2.2.1
assignee: Brian Fraser (fraserbn) → nobody
milestone: 2.2.1 → 2.1.9
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
Brian Fraser (fraserbn)
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
Brian Fraser (fraserbn)
Changed in percona-toolkit:
status: In Progress → Fix Committed
Changed in percona-toolkit:
status: Fix Committed → Fix Released
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

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

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.