Merge lp:~percona-toolkit-dev/percona-toolkit/fix-ptc-slave-binglog-formats-on-5.0 into lp:percona-toolkit/2.1

Proposed by Daniel Nichter
Status: Merged
Merged at revision: 435
Proposed branch: lp:~percona-toolkit-dev/percona-toolkit/fix-ptc-slave-binglog-formats-on-5.0
Merge into: lp:percona-toolkit/2.1
Diff against target: 101 lines (+40/-28)
2 files modified
bin/pt-table-checksum (+12/-4)
t/pt-table-checksum/bugs.t (+28/-24)
To merge this branch: bzr merge lp:~percona-toolkit-dev/percona-toolkit/fix-ptc-slave-binglog-formats-on-5.0
Reviewer Review Type Date Requested Status
Daniel Nichter Approve
Review via email: mp+131701@code.launchpad.net
To post a comment you must log in.
437. By Daniel Nichter

Presume STATEMENT binlog format if < 5.1.5 and still check other slaves in case they're newer versions of MySQL.

Revision history for this message
Daniel Nichter (daniel-nichter) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'bin/pt-table-checksum'
--- bin/pt-table-checksum 2012-10-22 18:17:08 +0000
+++ bin/pt-table-checksum 2012-10-26 23:08:23 +0000
@@ -8555,12 +8555,20 @@
85558555
8556 # https://bugs.launchpad.net/percona-toolkit/+bug/9380688556 # https://bugs.launchpad.net/percona-toolkit/+bug/938068
8557 if ( $o->get('check-binlog-format') ) {8557 if ( $o->get('check-binlog-format') ) {
8558 my ($master_binlog) = $master_dbh->selectrow_array(8558 my $master_binlog = 'STATEMENT';
8559 'SELECT @@binlog_format');8559 if ( VersionParser->new($master_dbh) >= '5.1.5' ) {
8560 ($master_binlog) = $master_dbh->selectrow_array(
8561 'SELECT @@binlog_format');
8562 }
8563
8560 my $err = '';8564 my $err = '';
8561 for my $slave_cxn (@$slaves) {8565 for my $slave_cxn (@$slaves) {
8562 my ($slave_binlog) = $slave_cxn->dbh->selectrow_array(8566 my $slave_binlog = 'STATEMENT';
8563 'SELECT @@binlog_format');8567 if ( VersionParser->new($slave_cxn->dbh) >= '5.1.5' ) {
8568 ($slave_binlog) = $slave_cxn->dbh->selectrow_array(
8569 'SELECT @@binlog_format');
8570 }
8571
8564 if ( $master_binlog ne $slave_binlog ) {8572 if ( $master_binlog ne $slave_binlog ) {
8565 $err .= $master_cxn->name() . " has binlog_format "8573 $err .= $master_cxn->name() . " has binlog_format "
8566 . $master_binlog . " but replica " . $slave_cxn->name()8574 . $master_binlog . " but replica " . $slave_cxn->name()
85678575
=== modified file 't/pt-table-checksum/bugs.t'
--- t/pt-table-checksum/bugs.t 2012-10-19 22:57:53 +0000
+++ t/pt-table-checksum/bugs.t 2012-10-26 23:08:23 +0000
@@ -180,9 +180,10 @@
180# https://bugs.launchpad.net/percona-toolkit/+bug/1016131180# https://bugs.launchpad.net/percona-toolkit/+bug/1016131
181# #############################################################################181# #############################################################################
182182
183($output) = full_output(183($output) = output(
184 sub { pt_table_checksum::main(@args, '--tables', 'mysql.user,mysql.host',184 sub { pt_table_checksum::main(@args, '--tables', 'mysql.user,mysql.host',
185 '--columns', 'some_fale_column') },185 '--columns', 'some_fale_column') },
186 stderr => 1,
186);187);
187188
188like(189like(
@@ -196,30 +197,33 @@
196# https://bugs.launchpad.net/percona-toolkit/+bug/938068197# https://bugs.launchpad.net/percona-toolkit/+bug/938068
197# #############################################################################198# #############################################################################
198199
199{200SKIP: {
200diag("Adding two new slaves to master");201 skip "binlog_format tests require MySQL 5.1 and newer", 2
201local $ENV{BINLOG_FORMAT} = 'ROW';202 unless $sandbox_version ge '5.1';
202diag(`$trunk/sandbox/start-sandbox slave 12348 12345`);203
203local $ENV{BINLOG_FORMAT} = 'MIXED';204 local $ENV{BINLOG_FORMAT} = 'ROW';
204diag(`$trunk/sandbox/start-sandbox slave 12349 12348`);205 diag(`$trunk/sandbox/start-sandbox slave 12348 12345`);
205206 local $ENV{BINLOG_FORMAT} = 'MIXED';
206$output = output( sub { pt_table_checksum::main(@args) }, stderr => 1 );207 diag(`$trunk/sandbox/start-sandbox slave 12349 12348`);
207208
208my $re = qr/ has binlog_format .*? has binlog_format (\S+)\./msi;209 $output = output( sub { pt_table_checksum::main(@args) }, stderr => 1 );
209like(210
210 $output,211 my $re = qr/ has binlog_format .*? has binlog_format (\S+)\./msi;
211 $re,212 like(
212 "Bug 938068: doesn't warn if binlog_format=row or mixed on slaves"213 $output,
213);214 $re,
214215 "Bug 938068: doesn't warn if binlog_format=row or mixed on slaves"
215is_deeply(216 );
216 [ $output =~ /$re/g ],217
217 [ 'ROW', 'MIXED' ],218 is_deeply(
218 "...and warns for both level 1 and level 2 slaves"219 [ $output =~ /$re/g ],
219) or diag($output);220 [ 'ROW', 'MIXED' ],
220221 "...and warns for both level 1 and level 2 slaves"
221diag(`$trunk/sandbox/stop-sandbox 12348 12349`);222 ) or diag($output);
223
224 diag(`$trunk/sandbox/stop-sandbox 12348 12349`);
222}225}
226
223# #############################################################################227# #############################################################################
224# Done.228# Done.
225# #############################################################################229# #############################################################################

Subscribers

People subscribed via source and target branches