mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-02 10:36:28 +00:00
Compare commits
34 Commits
d3172ce79c
...
release-v3
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d9b0219d9e | ||
![]() |
1d3a44c5da | ||
![]() |
a6a3199a3c | ||
![]() |
fadf758cb4 | ||
![]() |
25ba843cdd | ||
![]() |
4906b6a348 | ||
![]() |
18dba10c60 | ||
![]() |
5039621d29 | ||
![]() |
c30baedf41 | ||
![]() |
19b0927001 | ||
![]() |
9ccecb2d50 | ||
![]() |
2de6e9ba9e | ||
![]() |
f8e3ece9ee | ||
![]() |
5f79b34dfc | ||
![]() |
2eccd39129 | ||
![]() |
ef04237618 | ||
![]() |
df2cc0c9ca | ||
![]() |
6aacdda0e6 | ||
![]() |
b2dd791512 | ||
![]() |
e7580f2519 | ||
![]() |
22208f01a2 | ||
![]() |
f85d8b0194 | ||
![]() |
8b67b26f7e | ||
![]() |
0e4df890c4 | ||
![]() |
0fd43b871d | ||
![]() |
8c731e52c0 | ||
![]() |
95e95f95d6 | ||
![]() |
e84d985e3f | ||
![]() |
0869d14d19 | ||
![]() |
8231dae4c0 | ||
![]() |
aad0a26789 | ||
![]() |
8d03f3c8b8 | ||
![]() |
eafbaca786 | ||
![]() |
5da16d53f4 |
@@ -465,6 +465,7 @@ sub is_cluster_node {
|
||||
sub can_load_data {
|
||||
my ($self, $server) = @_;
|
||||
my $output = $self->use($server, q{-e "SELECT * FROM percona_test.load_data"});
|
||||
#die(0 =~ /1/);
|
||||
return ($output || '') =~ /1/;
|
||||
}
|
||||
|
||||
|
@@ -40,3 +40,6 @@ binlog_format = STATEMENT
|
||||
#performance-schema-instrument='wait/lock/metadata/sql/mdl=ON'
|
||||
#performance-schema-instrument='transaction=ON'
|
||||
secure-file-priv =
|
||||
|
||||
# wait_for_replica buggy on multi-threaded replica
|
||||
slave-parallel-workers=0
|
||||
|
@@ -40,3 +40,6 @@ binlog_format = STATEMENT
|
||||
#performance-schema-instrument='wait/lock/metadata/sql/mdl=ON'
|
||||
#performance-schema-instrument='transaction=ON'
|
||||
secure-file-priv =
|
||||
|
||||
# wait_for_replica buggy on multi-threaded replica
|
||||
replica-parallel-workers=0
|
||||
|
@@ -251,6 +251,7 @@ like(
|
||||
# Done.
|
||||
# #############################################################################
|
||||
$replica1_dbh->do("STOP ${replica_name}");
|
||||
$replica1_dbh->do("CHANGE ${source_change} TO ${source_name}_DELAY=0");
|
||||
$source_dbh->do("RESET ${source_reset}");
|
||||
$replica1_dbh->do("RESET ${replica_name}");
|
||||
$replica1_dbh->do("START ${replica_name}");
|
||||
|
@@ -398,6 +398,7 @@ $replica_dbh2 = $sb->get_dbh_for('replica2');
|
||||
diag("Setting replica delay to 0 seconds");
|
||||
$replica_dbh1->do("STOP ${replica_name}");
|
||||
$replica_dbh2->do("STOP ${replica_name}");
|
||||
$replica_dbh1->do("CHANGE ${source_change} TO ${source_name}_DELAY=0");
|
||||
$source_dbh->do("RESET ${source_reset}");
|
||||
$replica_dbh1->do("RESET ${source_reset}");
|
||||
$replica_dbh1->do("RESET ${replica_name}");
|
||||
|
@@ -162,6 +162,7 @@ $replica_dbh2 = $sb->get_dbh_for('replica2');
|
||||
diag("Setting replica delay to 0 seconds");
|
||||
$replica_dbh1->do("STOP ${replica_name}");
|
||||
$replica_dbh2->do("STOP ${replica_name}");
|
||||
$replica_dbh1->do("CHANGE ${source_change} TO ${source_name}_DELAY=0");
|
||||
$source_dbh->do("RESET ${source_reset}");
|
||||
$replica_dbh1->do("RESET ${replica_name}");
|
||||
$replica_dbh2->do("RESET ${replica_name}");
|
||||
|
@@ -328,6 +328,7 @@ $replica_dbh2 = $sb->get_dbh_for('replica2');
|
||||
diag("Setting replica delay to 0 seconds");
|
||||
$replica_dbh1->do("STOP ${replica_name}");
|
||||
$replica_dbh2->do("STOP ${replica_name}");
|
||||
$replica_dbh1->do("CHANGE ${source_change} TO ${source_name}_DELAY=0");
|
||||
$source_dbh->do("RESET ${source_reset}");
|
||||
$replica_dbh1->do("RESET ${replica_name}");
|
||||
$replica_dbh2->do("RESET ${replica_name}");
|
||||
|
@@ -98,6 +98,8 @@ unlike(
|
||||
diag("Setting replica delay to 0 seconds");
|
||||
$replica1_dbh->do("STOP ${replica_name}");
|
||||
$replica2_dbh->do("STOP ${replica_name}");
|
||||
$replica1_dbh->do("CHANGE ${source_change} TO ${source_name}_DELAY=0");
|
||||
$replica2_dbh->do("CHANGE ${source_change} TO ${source_name}_DELAY=0");
|
||||
$source_dbh->do("RESET ${source_reset}");
|
||||
$replica1_dbh->do("RESET ${replica_name}");
|
||||
$replica1_dbh->do("START ${replica_name}");
|
||||
|
@@ -354,6 +354,7 @@ $sb->do_as_root("source", q/FLUSH TABLES/);
|
||||
|
||||
diag("Setting replica delay to 0 seconds");
|
||||
$replica_dbh->do("STOP ${replica_name}");
|
||||
$replica_dbh->do("CHANGE ${source_change} TO ${source_name}_DELAY=0");
|
||||
$source_dbh->do("RESET ${source_reset}");
|
||||
$replica_dbh->do("RESET ${replica_name}");
|
||||
$replica_dbh->do("START ${replica_name}");
|
||||
|
@@ -104,7 +104,7 @@ unlike(
|
||||
$output,
|
||||
qr/Cannot checksum table/,
|
||||
"Very small --chunk-time doesn't cause zero --chunk-size"
|
||||
);
|
||||
) or diag($output);
|
||||
}
|
||||
# #############################################################################
|
||||
# Bug 921700: pt-table-checksum doesn't add --where to chunk-oversize test
|
||||
|
@@ -12,7 +12,7 @@ use English qw(-no_match_vars);
|
||||
use Test::More;
|
||||
|
||||
#if ( !$ENV{SLOW_TESTS} ) {
|
||||
# plan skip_all => "pt-table-checksum/replication_filters.t is one of the top slowest files; set SLOW_TESTS=1 to enable it.";
|
||||
# plan skip_all => "pt-table-checksum/pt-1616.t is one of the top slowest files; set SLOW_TESTS=1 to enable it.";
|
||||
#}
|
||||
|
||||
use PerconaTest;
|
||||
@@ -23,6 +23,8 @@ require "$trunk/bin/pt-table-checksum";
|
||||
my $dp = new DSNParser(opts=>$dsn_opts);
|
||||
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
|
||||
my $dbh = $sb->get_dbh_for('source');
|
||||
my $replica1_dbh = $sb->get_dbh_for('replica1');
|
||||
my $replica2_dbh = $sb->get_dbh_for('replica2');
|
||||
|
||||
if ( !$dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox source';
|
||||
@@ -104,7 +106,18 @@ unlike(
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
$sb->wipe_clean($dbh);
|
||||
diag("Resetting replicas, because this test sporadically fails");
|
||||
$replica1_dbh->do("STOP ${replica_name}");
|
||||
$replica2_dbh->do("STOP ${replica_name}");
|
||||
$dbh->do("RESET ${source_reset}");
|
||||
$replica1_dbh->do("RESET ${replica_name}");
|
||||
$replica1_dbh->do("START ${replica_name}");
|
||||
$replica2_dbh->do("RESET ${replica_name}");
|
||||
$replica2_dbh->do("START ${replica_name}");
|
||||
|
||||
diag("Replicas reset, syncing");
|
||||
$sb->wait_for_replicas();
|
||||
diag("Cleaning up");
|
||||
$sb->wipe_clean($dbh);
|
||||
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
|
||||
exit;
|
||||
|
@@ -127,7 +127,7 @@ is_deeply(
|
||||
[qw( sakila city )],
|
||||
],
|
||||
"Checksum results for 1/4 of sakila singles"
|
||||
);
|
||||
) or diag(Dumper($row));
|
||||
|
||||
$output = output(
|
||||
sub { pt_table_checksum::main(@args, qw(-d sakila --resume --chunk-size 10000)) },
|
||||
|
@@ -49,7 +49,7 @@ like(
|
||||
$output,
|
||||
qr/#\s+0\s+4\s+0\s+0\s+Chunk\s+/,
|
||||
"Chunks char col"
|
||||
);
|
||||
) or diag($output);
|
||||
like(
|
||||
$output,
|
||||
qr/FORCE INDEX \(`c`\)/,
|
||||
|
@@ -10,6 +10,7 @@ use strict;
|
||||
use warnings FATAL => 'all';
|
||||
use English qw(-no_match_vars);
|
||||
use Test::More;
|
||||
use POSIX ":sys_wait_h";
|
||||
|
||||
use PerconaTest;
|
||||
use Sandbox;
|
||||
@@ -38,26 +39,36 @@ else {
|
||||
plan tests => 3;
|
||||
}
|
||||
|
||||
diag("OK\n");
|
||||
|
||||
$sb->load_file('source', "t/pt-table-sync/samples/pt-1205.sql");
|
||||
diag("OK 2\n");
|
||||
$sb->wait_for_replicas();
|
||||
|
||||
diag("OK 3\n");
|
||||
|
||||
# Setting up tunnels
|
||||
my $pid1 = fork();
|
||||
|
||||
if ( !$pid1 ) {
|
||||
setpgrp;
|
||||
system('ncat -k -l localhost 3333 --sh-exec "ncat 127.0.0.1 12345"');
|
||||
system('ncat -k -l localhost 33333 --sh-exec "ncat 127.0.0.1 12345"');
|
||||
diag("OK 4\n");
|
||||
exit;
|
||||
}
|
||||
|
||||
diag("OK 5\n");
|
||||
|
||||
my $pid2 = fork();
|
||||
|
||||
if ( !$pid2 ) {
|
||||
setpgrp;
|
||||
system('ncat -k -l localhost 3334 --sh-exec "ncat 127.0.0.1 12346"');
|
||||
system('ncat -k -l localhost 33334 --sh-exec "ncat 127.0.0.1 12346"');
|
||||
diag("OK 6\n");
|
||||
exit;
|
||||
}
|
||||
|
||||
diag("OK 7\n");
|
||||
my $o = new OptionParser();
|
||||
my $q = new Quoter();
|
||||
my $ms = new MasterSlave(
|
||||
@@ -67,28 +78,35 @@ my $ms = new MasterSlave(
|
||||
);
|
||||
my $ss = $ms->get_replica_status($replica1_dbh);
|
||||
|
||||
diag("OK 8\n");
|
||||
$replica1_dbh->do("STOP ${replica_name}");
|
||||
$replica1_dbh->do("CHANGE ${source_change} TO ${source_name}_PORT=3333, ${source_name}_LOG_POS=" . $ss->{"exec_${source_name}_log_pos"});
|
||||
$replica1_dbh->do("CHANGE ${source_change} TO ${source_name}_PORT=33333, ${source_name}_LOG_POS=" . $ss->{"exec_${source_name}_log_pos"});
|
||||
$replica1_dbh->do("START ${replica_name}");
|
||||
|
||||
my $output = `$trunk/bin/pt-table-sync h=127.0.0.1,P=3334,u=msandbox,p=msandbox --database=test --table=t1 --sync-to-source --execute --verbose 2>&1`;
|
||||
diag("OK 9\n");
|
||||
my $output = `$trunk/bin/pt-table-sync h=127.0.0.1,P=33334,u=msandbox,p=msandbox --database=test --table=t1 --sync-to-source --execute --verbose 2>&1`;
|
||||
|
||||
diag("OK 10\n");
|
||||
unlike(
|
||||
$output,
|
||||
qr/The replica is connected to \d+ but the source's port is/,
|
||||
'No error for redirected replica'
|
||||
) or diag($output);
|
||||
|
||||
diag("OK 11\n");
|
||||
kill -1, getpgrp($pid1);
|
||||
kill -1, getpgrp($pid2);
|
||||
|
||||
diag("OK 12\n");
|
||||
$replica1_dbh->do("STOP ${replica_name}");
|
||||
$ss = $ms->get_replica_status($replica1_dbh);
|
||||
$replica1_dbh->do("CHANGE ${source_change} TO ${source_name}_PORT=12347, ${source_name}_LOG_POS=" . $ss->{"exec_${source_name}_log_pos"});
|
||||
$replica1_dbh->do("START ${replica_name} SQL_THREAD");
|
||||
|
||||
diag("OK 13\n");
|
||||
$output = `$trunk/bin/pt-table-sync h=127.0.0.1,P=12346,u=msandbox,p=msandbox --database=test --table=t1 --sync-to-source --execute --verbose 2>&1`;
|
||||
|
||||
diag("OK 14\n");
|
||||
like(
|
||||
$output,
|
||||
qr/The server specified as a source has no connected replicas/,
|
||||
@@ -98,9 +116,12 @@ like(
|
||||
$replica1_dbh->do("STOP ${replica_name}");
|
||||
$replica1_dbh->do("CHANGE ${source_change} TO ${source_name}_PORT=12345, ${source_name}_LOG_POS=" . $ss->{"exec_${source_name}_log_pos"});
|
||||
$replica1_dbh->do("START ${replica_name}");
|
||||
diag("OK 15\n");
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
$sb->wipe_clean($source_dbh);
|
||||
diag("OK 16\n");
|
||||
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
|
||||
diag("OK 17\n");
|
||||
exit;
|
||||
|
@@ -146,9 +146,8 @@ like(
|
||||
|
||||
$replica1_dbh->do("STOP ${replica_name}");
|
||||
$replica1_dbh->do("CHANGE ${source_change} TO ${source_name}_port=12345, ${source_name}_user='msandbox'");
|
||||
$replica1_dbh->do("START ${replica_name}");
|
||||
$replica1_dbh->do("STOP ${replica_name}");
|
||||
$replica1_dbh->do("CHANGE ${source_change} TO ${source_name}_port=12345, ${source_name}_user='msandbox'");
|
||||
$source_dbh->do("RESET ${source_reset}");
|
||||
$replica1_dbh->do("RESET ${replica_name}");
|
||||
$replica1_dbh->do("START ${replica_name}");
|
||||
|
||||
# #############################################################################
|
||||
|
Reference in New Issue
Block a user