From cc4af508366d697592a6d817f810d8be854ed862 Mon Sep 17 00:00:00 2001 From: chinaxing Date: Wed, 18 Sep 2024 05:29:35 +0000 Subject: [PATCH] [CP] fix mysqltest: trx.tx_free_route --- .../trx/r/mysql/tx_free_route.result | 8 ++- .../test_suite/trx/t/tx_free_route.inc | 61 +++++++++++++++---- .../test_suite/trx/t/tx_free_route.test | 40 +++++------- 3 files changed, 70 insertions(+), 39 deletions(-) diff --git a/tools/deploy/mysql_test/test_suite/trx/r/mysql/tx_free_route.result b/tools/deploy/mysql_test/test_suite/trx/r/mysql/tx_free_route.result index 88a47a97d..5a49690e2 100644 --- a/tools/deploy/mysql_test/test_suite/trx/r/mysql/tx_free_route.result +++ b/tools/deploy/mysql_test/test_suite/trx/r/mysql/tx_free_route.result @@ -1,5 +1,5 @@ -change mysql tenant primary_zone to RANDOM -alter tenant mysql set primary_zone = 'RANDOM'; +create resource unit if not exists tx_free_route_unit max_cpu=1, memory_size='2G'; +create tenant tx_free_route_tenant replica_num=2, resource_pool_list=('tx_free_route_pool'),primary_zone=RANDOM set ob_tcp_invited_nodes='%',ob_compatibility_mode='mysql'; drop table if exists t; create table t(id int primary key) partition by range(id) (partition p0 values less than (10000), partition p1 values less than (3000000000)); @@ -358,4 +358,6 @@ drop outline tx_route_test_ot_4; "------------- X - special query types ----------------------" "CLEANUP" drop table t; -recovery primary_zone settings for mysql tenant +drop tenant tx_free_route_tenant force; +drop resource pool tx_free_route_pool; +drop resource unit tx_free_route_unit; diff --git a/tools/deploy/mysql_test/test_suite/trx/t/tx_free_route.inc b/tools/deploy/mysql_test/test_suite/trx/t/tx_free_route.inc index c5237022c..2461a085d 100644 --- a/tools/deploy/mysql_test/test_suite/trx/t/tx_free_route.inc +++ b/tools/deploy/mysql_test/test_suite/trx/t/tx_free_route.inc @@ -2,9 +2,42 @@ ## common routines to prepare table and ls topology for tx_free_route test ## ------- +connection sys; + +# create tenant for test + +--disable_warnings +create resource unit if not exists tx_free_route_unit max_cpu=1, memory_size='2G'; +--enable_warnings +--disable_abort_on_error +--disable_query_log +--disable_result_log +let $i=0; +let $breakloop=0; +while($breakloop == 0) { + create resource pool tx_free_route_pool unit='tx_free_route_unit',unit_num=1,zone_list=('zone1','zone2'); + if ($mysql_errno == 0) { + let $breakloop=1; + } + if ($mysql_errno != 0) { + --inc $i + if ($i > 20) { + --echo "create resource pool failed : retry times=$i, error no=$mysql_errno" + let $breakloop=1; + } + --sleep 1 + } +} +--enable_abort_on_error +--enable_query_log +--enable_result_log + +eval create tenant tx_free_route_tenant replica_num=2, resource_pool_list=('tx_free_route_pool'),primary_zone=RANDOM set ob_tcp_invited_nodes='%',ob_compatibility_mode='$compat_mode'; + +let $tenant_id=`select tenant_id from oceanbase.__all_tenant where tenant_name = 'tx_free_route_tenant'`; + # check tenant has multiple ls -connection sys; let $breakLoop=0; let $i=0; let $fail = 0; @@ -14,7 +47,7 @@ while ($breakLoop == 0) { if ($lsCnt > 1) { --inc $breakLoop } - if ($i >= 3000) { + if ($i >= 50) { --inc $fail --inc $breakLoop } @@ -26,21 +59,27 @@ if ($fail > 0) { eval select * from oceanbase.__all_virtual_ls where tenant_id = $tenant_id; } -connection conn0; - -let $tname=$tenant_name; - -if ($tname == '') { - die "error , tenant_name unspeficied: $tenant_name"; +if ($compat_mode == 'mysql') { + connect (conn0,$OBMYSQL_MS0,root@tx_free_route_tenant,,test,$OBMYSQL_PORT); + connect (conn1,$OBMYSQL_MS0,root@tx_free_route_tenant,,test,$OBMYSQL_PORT); + connect (conn2,$OBMYSQL_MS0,root@tx_free_route_tenant,,test,$OBMYSQL_PORT); } -if ($tname == 'mysql') { +if ($compat_mode == 'oracle') { + connect (conn0,$OBMYSQL_MS0,sys@tx_free_route_tenant,,sys,$OBMYSQL_PORT); + connect (conn1,$OBMYSQL_MS0,sys@tx_free_route_tenant,,sys,$OBMYSQL_PORT); + connect (conn2,$OBMYSQL_MS0,sys@tx_free_route_tenant,,sys,$OBMYSQL_PORT); +} + +connection conn0; + +if ($compat_mode == 'mysql') { --disable_warnings drop table if exists t; --enable_warnings } -if ($tname == 'oracle') { +if ($compat_mode == 'oracle') { --disable_abort_on_error --disable_result_log drop table t purge; @@ -72,7 +111,7 @@ while ($breakLoop == 0) if ($lsCnt > 1) { --inc $breakLoop } - if ($i >= 3000) { + if ($i >= 50) { --inc $fail --inc $breakLoop } diff --git a/tools/deploy/mysql_test/test_suite/trx/t/tx_free_route.test b/tools/deploy/mysql_test/test_suite/trx/t/tx_free_route.test index 982a1f2b5..830c45492 100644 --- a/tools/deploy/mysql_test/test_suite/trx/t/tx_free_route.test +++ b/tools/deploy/mysql_test/test_suite/trx/t/tx_free_route.test @@ -21,18 +21,7 @@ if ($client_session_id_version == '2') { --enable_query_log --enable_result_log -# change tenant primary zone to RANDOM -let $saved_primary_zone=`select primary_zone from oceanbase.__all_tenant where tenant_name = 'mysql'`; ---echo change mysql tenant primary_zone to RANDOM -alter tenant mysql set primary_zone = 'RANDOM'; - -let $tenant_id=`select tenant_id from oceanbase.__all_tenant where tenant_name = 'mysql'`; - -let $tenant_name=mysql; - -connect (conn0,$OBMYSQL_MS0,admin@mysql,$OBMYSQL_PWD,test,$OBMYSQL_PORT); -connect (conn1,$OBMYSQL_MS0,admin@mysql,$OBMYSQL_PWD,test,$OBMYSQL_PORT); - +let $compat_mode=mysql; --source mysql_test/test_suite/trx/t/tx_free_route.inc connection conn0; @@ -413,7 +402,7 @@ if ($session_0 != $session_1) { if ($session_0 != $session_2) { --echo "unexpected error happen!!!"; } -} +} --disable_query_log --disable_result_log if ($session_0 == $session_1) { @@ -793,7 +782,7 @@ delete from t; commit; set global autocommit=0; --echo "CASE 8.1" -connect (conn8,$OBMYSQL_MS0,admin@mysql,$OBMYSQL_PWD,test,$OBMYSQL_PORT); +connect (conn8,$OBMYSQL_MS0, root@tx_free_route_tenant,,test,$OBMYSQL_PORT); connection conn8; select * from t where id = 1; set autocommit=1; @@ -808,7 +797,7 @@ disconnect conn8; if ($s1 == $2) { --echo "not free routed: $s1, $s2" } --echo "CASE 8.2" -connect (conn82,$OBMYSQL_MS0,admin@mysql,$OBMYSQL_PWD,test,$OBMYSQL_PORT); +connect (conn82,$OBMYSQL_MS0,root@tx_free_route_tenant,,test,$OBMYSQL_PORT); begin; insert into t values(2); let $s3=`select connection_id()`; @@ -824,7 +813,7 @@ connection conn0; set global autocommit=1; --echo "------------- 9 - error-packet caused proxy duplicate sync etc ----------------------" -connect (conn90,$OBMYSQL_MS0,admin@mysql,$OBMYSQL_PWD,test,$OBMYSQL_PORT); +connect (conn90,$OBMYSQL_MS0,root@tx_free_route_tenant,,test,$OBMYSQL_PORT); delete from t; commit; begin; @@ -857,7 +846,7 @@ if ($s6 != $s1) { --echo "s1 != s6: $s1, $s6" } disconnect conn90; --echo "------------- 10 - readonly tx with serializable snapshot swtich txn----------------------" -connect (conn100,$OBMYSQL_MS0,admin@mysql,$OBMYSQL_PWD,test,$OBMYSQL_PORT); +connect (conn100,$OBMYSQL_MS0,root@tx_free_route_tenant,,test,$OBMYSQL_PORT); delete from t; commit; --disable_abort_on_error @@ -910,11 +899,15 @@ disconnect conn100; --echo "CLEANUP" connection conn0; drop table t; + +disconnect conn0; +disconnect conn1; +disconnect conn2; + connection sys; ---echo recovery primary_zone settings for mysql tenant ---disable_query_log -eval alter tenant mysql set primary_zone = "$saved_primary_zone"; ---enable_query_log +drop tenant tx_free_route_tenant force; +drop resource pool tx_free_route_pool; +drop resource unit tx_free_route_unit; # recover proxy config --disable_abort_on_error @@ -934,7 +927,4 @@ if ($client_session_id_version == 2) { --enable_query_log --enable_result_log ---sleep 5 - -disconnect conn0; -disconnect conn1; +disconnect sys;