Print info about slaves found. Print --progress when waiting for new table to replicate to slaves.

This commit is contained in:
Daniel Nichter
2013-11-26 16:23:52 -08:00
parent 1f35ab7654
commit 56a32fe50b
5 changed files with 66 additions and 12 deletions

View File

@@ -8031,8 +8031,22 @@ sub main {
}, },
); );
PTDEBUG && _d(scalar @$slaves, 'slaves found'); PTDEBUG && _d(scalar @$slaves, 'slaves found');
if ( scalar @$slaves ) {
print "Found " . scalar(@$slaves) . " slaves:\n";
foreach my $cxn ( @$slaves ) {
print " " . $cxn->name() . "\n";
}
}
elsif ( ($o->get('recursion-method') || '') ne 'none') {
print "No slaves found. See --recursion-method if host "
. $cxn->name() . " has slaves.\n";
}
else {
print "Ignoring all slaves because --recursion-method=none "
. "was specified\n";
}
if ( $o->get('check-slave-lag') ) { if ( my $dsn = $o->get('check-slave-lag') ) {
PTDEBUG && _d('Will use --check-slave-lag to check for slave lag'); PTDEBUG && _d('Will use --check-slave-lag to check for slave lag');
my $cxn = $make_cxn->( my $cxn = $make_cxn->(
dsn_string => $o->get('check-slave-lag'), dsn_string => $o->get('check-slave-lag'),
@@ -8044,6 +8058,16 @@ sub main {
PTDEBUG && _d('Will check slave lag on all slaves'); PTDEBUG && _d('Will check slave lag on all slaves');
$slave_lag_cxns = $slaves; $slave_lag_cxns = $slaves;
} }
if ( $slave_lag_cxns && scalar @$slave_lag_cxns ) {
print "Will check slave lag on:\n";
foreach my $cxn ( @$slave_lag_cxns ) {
print " " . $cxn->name() . "\n";
}
}
else {
print "Not checking slave lag because no slaves were found "
. "and --check-slave-lag was not specified.\n";
}
# ##################################################################### # #####################################################################
# Check for replication filters. # Check for replication filters.
@@ -8513,14 +8537,36 @@ sub main {
} }
}; };
for my $slave (@$slaves) { if ( $slaves && scalar @$slaves ) {
PTDEBUG && _d('Waiting until', $slave->name(), foreach my $slave (@$slaves) {
'replicates the table'); my ($pr, $pr_first_report);
sleep 0.5 while ! $tp->check_table( if ( $o->get('progress') ) {
dbh => $slave->dbh(), $pr = new Progress(
db => $new_tbl->{db}, jobsize => scalar @$slaves,
tbl => $new_tbl->{tbl} spec => $o->get('progress'),
); name => "Waiting for " . $slave->name(),
);
$pr_first_report = sub {
print "Waiting forever for new table $new_tbl->{name} to replicate "
. "to " . $slave->name() . "...\n";
};
}
$pr->start() if $pr;
my $has_table = 0;
while ( !$has_table ) {
$has_table = $tp->check_table(
dbh => $slave->dbh(),
db => $new_tbl->{db},
tbl => $new_tbl->{tbl}
);
last if $has_table;
$pr->update(
sub { return 0; },
first_report => $pr_first_report,
) if $pr;
sleep 1;
}
}
} }
# --plugin hook # --plugin hook

View File

@@ -61,7 +61,7 @@ is(
$exit_status, $exit_status,
0, 0,
"--dry-run exit 0 (bug 1058285)" "--dry-run exit 0 (bug 1058285)"
); ) or diag($output);
unlike( unlike(
$output, $output,

View File

@@ -13,6 +13,7 @@ use Test::More;
use Time::HiRes qw(sleep); use Time::HiRes qw(sleep);
$ENV{PTTEST_FAKE_TS} = 1; $ENV{PTTEST_FAKE_TS} = 1;
$ENV{PERCONA_TOOLKIT_TEST_USE_DSN_NAMES} = 1;
use PerconaTest; use PerconaTest;
use Sandbox; use Sandbox;

View File

@@ -56,10 +56,10 @@ $sb->load_file('master', "$sample/basic_no_fks.sql");
my @create = split("\n\n", $output); my @create = split("\n\n", $output);
like( like(
$create[1], $create[1] || '',
qr/DEFAULT CHARSET=utf8/, qr/DEFAULT CHARSET=utf8/,
"Can alter charset of new table" "Can alter charset of new table"
); ) or diag($output);
# ############################################################################# # #############################################################################
# Done. # Done.

View File

@@ -1,3 +1,9 @@
Found 2 slaves:
h=127.0.0.1,P=12346
h=127.0.0.1,P=12347
Will check slave lag on:
h=127.0.0.1,P=12346
h=127.0.0.1,P=12347
Operation, tries, wait: Operation, tries, wait:
copy_rows, 10, 0.25 copy_rows, 10, 0.25
create_triggers, 10, 1 create_triggers, 10, 1
@@ -14,6 +20,7 @@ TS Dropped triggers OK.
Successfully altered `bug_1045317`.`bits`. Successfully altered `bug_1045317`.`bits`.
Creating new table... Creating new table...
Created new table bug_1045317._bits_new OK. Created new table bug_1045317._bits_new OK.
Waiting forever for new table `bug_1045317`.`_bits_new` to replicate to h=127.0.0.1,P=12346...
Altering new table... Altering new table...
Altered `bug_1045317`.`_bits_new` OK. Altered `bug_1045317`.`_bits_new` OK.
TS Creating triggers... TS Creating triggers...