mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 05:00:45 +00:00
PT-1760 MasterSlave fix for rep channels
This commit is contained in:
@@ -2605,13 +2605,20 @@ sub get_slave_status {
|
||||
if (!$self->{channel}) {
|
||||
die 'This server returned more than one row for SHOW SLAVE STATUS but "channel" was not specified on the command line';
|
||||
}
|
||||
my $slave_use_channels;
|
||||
for my $row (@$sss_rows) {
|
||||
$row = { map { lc($_) => $row->{$_} } keys %$row }; # lowercase the keys
|
||||
if ($row->{channel_name}) {
|
||||
$slave_use_channels = 1;
|
||||
}
|
||||
if ($row->{channel_name} eq $self->{channel}) {
|
||||
$ss = $row;
|
||||
last;
|
||||
}
|
||||
}
|
||||
if (!$ss && $slave_use_channels) {
|
||||
die 'This server is using replication channels but "channel" was not specified on the command line';
|
||||
}
|
||||
} else {
|
||||
if ($sss_rows->[0]->{channel_name} && $sss_rows->[0]->{channel_name} ne $self->{channel}) {
|
||||
die 'This server is using replication channels but "channel" was not specified on the command line';
|
||||
@@ -2624,6 +2631,9 @@ sub get_slave_status {
|
||||
$ss = { map { lc($_) => $ss->{$_} } keys %$ss }; # lowercase the keys
|
||||
return $ss;
|
||||
}
|
||||
if (!$ss && $self->{channel}) {
|
||||
die "Specified channel name is invalid";
|
||||
}
|
||||
}
|
||||
|
||||
PTDEBUG && _d('This server returns nothing for SHOW SLAVE STATUS');
|
||||
|
Reference in New Issue
Block a user