Commit 208b6776 authored by Nirbhay Choubey's avatar Nirbhay Choubey

Bug#58221 : mysqladmin --sleep=x --count=x keeps looping

When mysqldadmin is run with sleep and count options,
it goes into an infinite loop and keeps executing the
specified command.

This happened because the statement, responsible for
decrementing the count value, was missing.

Fixed by adding a statement which will decrement the
count value for each iteration.


client/mysqladmin.cc:
  Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
  
  Added a condition to check and decrement the count
  value stored in nr_iterations per iteration.
mysql-test/r/mysqladmin.result:
  Added a testcase for Bug#58221.
mysql-test/t/mysqladmin.test:
  Added a testcase for Bug#58221.
parent 3a6b4048
...@@ -416,6 +416,9 @@ int main(int argc,char *argv[]) ...@@ -416,6 +416,9 @@ int main(int argc,char *argv[])
if (interval) /* --sleep=interval given */ if (interval) /* --sleep=interval given */
{ {
if (opt_count_iterations && --nr_iterations == 0)
break;
/* /*
If connection was dropped (unintentionally, or due to SHUTDOWN), If connection was dropped (unintentionally, or due to SHUTDOWN),
re-establish it if --wait ("retry-connect") was given and user re-establish it if --wait ("retry-connect") was given and user
......
...@@ -2,3 +2,11 @@ mysqld is alive ...@@ -2,3 +2,11 @@ mysqld is alive
mysqladmin: unknown variable 'database=db1' mysqladmin: unknown variable 'database=db1'
Warning: mysqladmin: unknown variable 'loose-database=db2' Warning: mysqladmin: unknown variable 'loose-database=db2'
mysqld is alive mysqld is alive
#
# Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
#
# Executing mysqladmin with --sleep=1 and --count=2.
# Done.
# Displaying the output :
mysqld is alive
mysqld is alive
...@@ -33,3 +33,15 @@ EOF ...@@ -33,3 +33,15 @@ EOF
--exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1 --exec $MYSQLADMIN --defaults-file=$MYSQLTEST_VARDIR/tmp/bug10608.cnf -S $MASTER_MYSOCK -P $MASTER_MYPORT -u root --password= ping 2>&1
remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf; remove_file $MYSQLTEST_VARDIR/tmp/bug10608.cnf;
--echo #
--echo # Bug#58221 : mysqladmin --sleep=x --count=x keeps looping
--echo #
--echo # Executing mysqladmin with --sleep=1 and --count=2.
--exec $MYSQLADMIN -u root -S $MASTER_MYSOCK -P $MASTER_MYPORT --sleep=1 --count=2 ping > $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
--echo # Done.
--echo # Displaying the output :
--cat_file $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
--remove_file $MYSQLTEST_VARDIR/tmp/mysqladmin.tmp
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment