github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/tests/slow_relay_writer/run.sh (about) 1 #!/bin/bash 2 3 set -eu 4 5 cur=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) 6 source $cur/../_utils/test_prepare 7 8 WORK_DIR=$TEST_DIR/$TEST_NAME 9 TABLE_NUM=10 10 11 function prepare_data() { 12 run_sql 'DROP DATABASE if exists slow_relay_writer;' $MYSQL_PORT1 $MYSQL_PASSWORD1 13 run_sql 'CREATE DATABASE slow_relay_writer;' $MYSQL_PORT1 $MYSQL_PASSWORD1 14 for i in $(seq $TABLE_NUM); do 15 run_sql "CREATE TABLE slow_relay_writer.t$i(i TINYINT, j INT UNIQUE KEY);" $MYSQL_PORT1 $MYSQL_PASSWORD1 16 done 17 } 18 19 function incremental_data() { 20 for j in $(seq 2); do 21 for i in $(seq $TABLE_NUM); do 22 run_sql "BEGIN;INSERT INTO slow_relay_writer.t$i VALUES ($j,${j}000$j);INSERT INTO slow_relay_writer.t$i VALUES ($j,${j}001$j);COMMIT;" $MYSQL_PORT1 $MYSQL_PASSWORD1 23 done 24 done 25 } 26 27 function run() { 28 prepare_data 29 30 export GO_FAILPOINTS='github.com/pingcap/tiflow/dm/relay/SlowDownWriteDMLRelayLog=10*return();github.com/pingcap/tiflow/dm/relay/SetHeartbeatInterval=return(5)' 31 32 run_dm_master $WORK_DIR/master $MASTER_PORT $cur/conf/dm-master.toml 33 check_rpc_alive $cur/../bin/check_master_online 127.0.0.1:$MASTER_PORT 34 run_dm_worker $WORK_DIR/worker1 $WORKER1_PORT $cur/conf/dm-worker1.toml 35 check_rpc_alive $cur/../bin/check_worker_online 127.0.0.1:$WORKER1_PORT 36 # operate mysql config to worker 37 cp $cur/conf/source1.yaml $WORK_DIR/source1.yaml 38 sed -i "/relay-binlog-name/i\relay-dir: $WORK_DIR/worker1/relay_log" $WORK_DIR/source1.yaml 39 dmctl_operate_source create $WORK_DIR/source1.yaml $SOURCE_ID1 40 41 dmctl_start_task_standalone 42 check_sync_diff $WORK_DIR $cur/conf/diff_config.toml 43 44 echo "start incremental_data" 45 incremental_data 46 echo "finish incremental_data" 47 48 # we injected 10*1s by SlowDownWriteDMLRelayLog, so sleep a longer time 49 sleep 10 50 51 check_log_contains $WORK_DIR/worker1/log/dm-worker.log "enter SlowDownWriteDMLRelayLog" 52 run_dm_ctl_with_retry $WORK_DIR "127.0.0.1:$MASTER_PORT" \ 53 "query-status test" \ 54 "\"synced\": true" 1 55 56 check_sync_diff $WORK_DIR $cur/conf/diff_config.toml 57 58 export GO_FAILPOINTS='' 59 } 60 61 cleanup_data slow_relay_writer 62 cleanup_process 63 64 run $* 65 66 cleanup_process 67 68 echo "[$(date)] <<<<<< test case $TEST_NAME success! >>>>>>"