Kill cxn only if using a db in Sandbox::wipe_clean(). Fix pt-duplicate-key-checker/basics.t for 5.0. Make pt-table-sync/lock_and_rename.t more stable.

This commit is contained in:
Daniel Nichter
2012-06-04 18:46:35 -07:00
parent 3a717b645c
commit 1b11b7d7d9
4 changed files with 24 additions and 18 deletions

View File

@@ -34,8 +34,8 @@ use English qw(-no_match_vars);
use Time::HiRes qw(sleep);
use Data::Dumper;
$Data::Dumper::Indent = 1;
$Data::Dumper::Quotekeys = 0;
$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Quotekeys = 0;
use constant PTDEBUG => $ENV{PTDEBUG} || 0;
my $trunk = $ENV{PERCONA_TOOLKIT_BRANCH};
@@ -164,11 +164,17 @@ sub wipe_clean {
# the DROP commands will just hang forever.
my @cxns = @{$dbh->selectall_arrayref('SHOW FULL PROCESSLIST', {Slice => {}})};
foreach my $cxn ( @cxns ) {
if (
if ((
(($cxn->{user}||'') eq 'msandbox' && ($cxn->{command}||'') eq 'Sleep')
|| (($cxn->{User}||'') eq 'msandbox' && ($cxn->{Command}||'') eq 'Sleep')
) && $cxn->{db}
) {
eval { $dbh->do("KILL $cxn->{id}"); };
my $id = $cxn->{id} ? $cxn->{id} : $cxn->{Id};
my $sql = "KILL $id /* db: $cxn->{db} */";
Test::More::diag($sql);
eval { $dbh->do($sql); };
Test::More::diag("Error executing $sql in Sandbox::wipe_clean(): "
. $EVAL_ERROR) if $EVAL_ERROR;
}
}
foreach my $db ( @{$dbh->selectcol_arrayref('SHOW DATABASES')} ) {

View File

@@ -102,6 +102,7 @@ ok(
no_diff(
sub { pt_duplicate_key_checker::main(@args, qw(-d test)) },
"$sample/bug-894140.txt",
sed => [ "-e 's/ */ /g'" ],
),
"Bug 894140"
);

View File

@@ -33,20 +33,20 @@ else {
}
$sb->wipe_clean($master_dbh);
$sb->wipe_clean($slave_dbh);
$sb->create_dbs($master_dbh, [qw(test)]);
# #############################################################################
# Issue 363: lock and rename.
# #############################################################################
$sb->load_file('master', 't/pt-table-sync/samples/before.sql');
PerconaTest::wait_for_table($slave_dbh, "test.test2");
$output = `$trunk/bin/pt-table-sync --lock-and-rename h=127.1,P=12345 P=12346 2>&1`;
like($output, qr/requires exactly two/,
'--lock-and-rename error when DSNs do not specify table');
# It's hard to tell exactly which table is which, and the tables are going to be
# "swapped", so we'll put a marker in each table to test the swapping.
# It's hard to tell exactly which table is which, and the tables are going
# to be "swapped", so we'll put a marker in each table to test the swapping.
`/tmp/12345/use -e "alter table test.test1 comment='test1'"`;
$output = `$trunk/bin/pt-table-sync --execute --lock-and-rename h=127.1,P=12345,u=msandbox,p=msandbox,D=test,t=test1 t=test2 2>&1`;
@@ -59,6 +59,5 @@ like($output, qr/COMMENT='test1'/, '--lock-and-rename worked');
# Done.
# #############################################################################
$sb->wipe_clean($master_dbh);
$sb->wipe_clean($slave_dbh);
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
exit;