[CP] fix mysqltest: trx.tx_free_route

This commit is contained in:
chinaxing 2024-09-18 05:29:35 +00:00 committed by ob-robot
parent f76d40a9c7
commit cc4af50836
3 changed files with 70 additions and 39 deletions

View File

@ -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;

View File

@ -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
}

View File

@ -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;