Merge pull request #706 from percona/Follow_PR-429_unstop_option_with_testcase

Follow PR-429 unstop option with testcase
This commit is contained in:
Sveta Smirnova
2023-12-04 13:10:25 +03:00
committed by GitHub
2 changed files with 36 additions and 2 deletions

View File

@@ -6240,6 +6240,14 @@ sub main {
return 0; return 0;
} }
# Remove sentinel file.
if ( $o->get('unstop') ) {
unlink $sentinel
or die "Cannot unlink sentinel file ${sentinel}: $OS_ERROR\n";
print STDOUT "Successfully removed file $sentinel\n"
unless $quiet;
}
# Generate a filename with sprintf-like formatting codes. # Generate a filename with sprintf-like formatting codes.
if ( $archive_file ) { if ( $archive_file ) {
my @time = localtime(); my @time = localtime();
@@ -8347,7 +8355,7 @@ Stop running instances by creating the sentinel file.
Causes pt-archiver to create the sentinel file specified by L<"--sentinel"> and Causes pt-archiver to create the sentinel file specified by L<"--sentinel"> and
exit. This should have the effect of stopping all running instances which are exit. This should have the effect of stopping all running instances which are
watching the same sentinel file. watching the same sentinel file. See also L<"--unstop">.
=item --txn-size =item --txn-size
@@ -8374,6 +8382,13 @@ autocommit, dropped performance to 38 seconds per thousand rows.
If you are not archiving from or to a transactional storage engine, you may If you are not archiving from or to a transactional storage engine, you may
want to disable transactions so pt-archiver doesn't try to commit. want to disable transactions so pt-archiver doesn't try to commit.
=item --unstop
Remove sentinel file
Causes pt-archiver to remove the sentinel file specified by L<"--sentinel"> and
continue. See also L<"--stop">.
=item --user =item --user
short form: -u; type: string short form: -u; type: string

View File

@@ -84,7 +84,26 @@ like(
'Created the sentinel OK' 'Created the sentinel OK'
); );
diag(`rm -f $sentinel`); # Test --unstop, which removes the sentinel
$output = output(
sub { pt_archiver::main("--source", "D=test,t=table_1,F=$cnf",
qw(--where 1=1 --why-quit --purge),
"--sentinel", $sentinel, "--unstop")
},
);
like(
$output,
qr/Successfully removed file $sentinel/,
'Removed the sentinel OK'
) or diag($output);
$output = `/tmp/12345/use -N -e "select count(*) from test.table_1"`;
is(
$output + 0,
0,
'Rows were deleted'
) or diag($output);
# ############################################################################# # #############################################################################
# Issue 391: Add --pid option to mk-table-sync # Issue 391: Add --pid option to mk-table-sync