From 99513bdfa9d1b932e0b4dd7e45620becc911b5be Mon Sep 17 00:00:00 2001 From: Ti Chi Robot Date: Fri, 5 Aug 2022 15:44:06 +0800 Subject: [PATCH] test(dm): fix using pgrep to check argument pattern (#6572) (#6584) close pingcap/tiflow#5287, close pingcap/tiflow#5731, close pingcap/tiflow#6526 --- dm/tests/_utils/test_prepare | 6 ++++++ dm/tests/_utils/wait_process_exit | 6 +++--- dm/tests/compatibility/start.sh | 9 +++------ dm/tests/shardddl1/run.sh | 8 ++++++++ 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/dm/tests/_utils/test_prepare b/dm/tests/_utils/test_prepare index a91e1755372..db0d3f4af51 100644 --- a/dm/tests/_utils/test_prepare +++ b/dm/tests/_utils/test_prepare @@ -35,6 +35,12 @@ function cleanup_process() { wait_process_exit dm-syncer.test } +function kill_process() { + keyword=$1 + ps aux | grep $keyword | grep -v 'grep' | awk '{print $2}' | xargs kill || true + wait_process_exit $keyword +} + function wait_pattern_exit() { pattern=$1 while true diff --git a/dm/tests/_utils/wait_process_exit b/dm/tests/_utils/wait_process_exit index 90c68222535..bc0ec81fc0d 100755 --- a/dm/tests/_utils/wait_process_exit +++ b/dm/tests/_utils/wait_process_exit @@ -4,8 +4,8 @@ process=$1 WAIT_COUNT=0 -while [ $WAIT_COUNT -lt 30 ]; do - pgrep $process >/dev/null 2>&1 +while [ $WAIT_COUNT -lt 120 ]; do + ps aux | grep $process | grep -v 'grep' | grep -v 'wait_process_exit' >/dev/null 2>&1 ret=$? if [ "$ret" != "0" ]; then echo "process $process already exit" @@ -16,5 +16,5 @@ while [ $WAIT_COUNT -lt 30 ]; do ((WAIT_COUNT++)) done -echo "process $process didn't exit after 120 seconds, current processlist: $(ps aux | grep $process | grep -v 'grep')" +echo "process $process didn't exit after 120 seconds, current processlist: $(ps aux | grep $process | grep -v 'grep' | grep -v 'wait_process_exit')" exit 1 diff --git a/dm/tests/compatibility/start.sh b/dm/tests/compatibility/start.sh index a847500fd08..88545a1069d 100755 --- a/dm/tests/compatibility/start.sh +++ b/dm/tests/compatibility/start.sh @@ -31,8 +31,7 @@ function run() { # upgrading should firstly upgrade master echo "use current dm-master" - pkill -hup dm-master.test.previous 2>/dev/null || true - wait_process_exit dm-master.test.previous + kill_process dm-master.test.previous run_dm_master $WORK_DIR/master $MASTER_PORT $cur/conf/dm-master.toml current check_rpc_alive $cur/../bin/check_master_online 127.0.0.1:$MASTER_PORT run_sql_file $cur/data/db1.increment.1.sql $MYSQL_HOST1 $MYSQL_PORT1 $MYSQL_PASSWORD1 @@ -42,8 +41,7 @@ function run() { check_sync_diff $WORK_DIR $cur/conf/diff_config.toml echo "restart dm-worker, one use the current version, and the other one use the previous version" - pkill -hup dm-worker.test.previous 2>/dev/null || true - wait_process_exit dm-worker.test.previous + kill_process dm-worker.test.previous run_dm_worker $WORK_DIR/worker1 $WORKER1_PORT $cur/conf/dm-worker1.toml current check_rpc_alive $cur/../bin/check_worker_online 127.0.0.1:$WORKER1_PORT run_dm_worker $WORK_DIR/worker2 $WORKER2_PORT $cur/conf/dm-worker2.toml previous @@ -74,8 +72,7 @@ function run() { check_sync_diff $WORK_DIR $cur/conf/diff_config.toml echo "all dm-worker use current version" - pkill -hup dm-worker.test.previous 2>/dev/null || true - wait_process_exit dm-worker.test.previous + kill_process dm-worker.test.previous run_dm_worker $WORK_DIR/worker2 $WORKER2_PORT $cur/conf/dm-worker2.toml current run_sql_file $cur/data/db1.increment.3.sql $MYSQL_HOST1 $MYSQL_PORT1 $MYSQL_PASSWORD1 diff --git a/dm/tests/shardddl1/run.sh b/dm/tests/shardddl1/run.sh index 9e6bee3d682..44b4d22b260 100644 --- a/dm/tests/shardddl1/run.sh +++ b/dm/tests/shardddl1/run.sh @@ -295,6 +295,14 @@ function DM_RestartMaster_CASE() { check_sync_diff $WORK_DIR $cur/conf/diff_config.toml run_sql_source1 "alter table ${shardddl1}.${tb1} add column c double;" + if [[ "$1" = "pessimistic" ]]; then + check_log_contain_with_retry 'putted shard DDL info.*ADD COLUMN' \ + $WORK_DIR/worker1/log/dm-worker.log $WORK_DIR/worker2/log/dm-worker.log + else + check_log_contain_with_retry 'finish to handle ddls in optimistic shard mode.*add column' \ + $WORK_DIR/worker1/log/dm-worker.log $WORK_DIR/worker2/log/dm-worker.log + fi + run_sql_source2 "alter table ${shardddl1}.${tb1} add column c text;" if [[ "$1" = "pessimistic" ]]; then