From ce31267edd90d26769276617731c2d6ec6ffb8c7 Mon Sep 17 00:00:00 2001 From: liangke Date: Wed, 21 Feb 2024 12:35:00 +0800 Subject: [PATCH] fix --- mysql-test/mysql-test-run-ST.pl | 25 ++++++++++++++----- .../suite/tianchi/r/recreate_test_db.result | 2 ++ storage/tianchi/ha_tse.cc | 21 ---------------- storage/tianchi/tse_srv.h | 1 + storage/tianchi/tse_srv_mq_stub.cc | 21 ++++++++++++++++ 5 files changed, 43 insertions(+), 27 deletions(-) create mode 100644 mysql-test/suite/tianchi/r/recreate_test_db.result diff --git a/mysql-test/mysql-test-run-ST.pl b/mysql-test/mysql-test-run-ST.pl index ba2f102..9c330a7 100644 --- a/mysql-test/mysql-test-run-ST.pl +++ b/mysql-test/mysql-test-run-ST.pl @@ -33,8 +33,8 @@ # https://dev.mysql.com/doc/dev/mysql-server/latest/PAGE_MYSQL_TEST_RUN.html # ############################################################################## -$ENV{MTR_BINDIR} = '/home/regress/mysql-server/bld_debug'; -chdir('/home/regress/mysql-server/mysql-test'); +$ENV{MTR_BINDIR} = '/usr/local/mysql'; +#chdir('/home/regress/mysql-server/mysql-test'); use strict; use warnings; @@ -6258,11 +6258,24 @@ sub mysqld_start ($$$$) { # Remember data dir for gmon.out files if using gprof $gprof_dirs{ $mysqld->value('datadir') } = 1 if $opt_gprof; - if (daac_start()) { - mtr_error("Failed to start daac."); - } +# if (daac_start()) { +# mtr_error("Failed to start daac."); +# } if (defined $exe) { - $mysqld->{'proc'} = `pidof mysqld`; + $mysqld->{'proc'} = + My::SafeProcess->new(name => $mysqld->name(), + path => $exe, + args => \$args, + output => $output, + error => $output, + append => 1, + verbose => $opt_verbose, + nocore => $opt_skip_core, + host => undef, + shutdown => sub { mysqld_stop($mysqld) }, + envs => \@opt_mysqld_envs, + pid_file => $pid_file, + daemon_mode => $mysqld->{'daemonize'}); mtr_verbose("Started $mysqld->{proc}"); } diff --git a/mysql-test/suite/tianchi/r/recreate_test_db.result b/mysql-test/suite/tianchi/r/recreate_test_db.result new file mode 100644 index 0000000..6640698 --- /dev/null +++ b/mysql-test/suite/tianchi/r/recreate_test_db.result @@ -0,0 +1,2 @@ +drop database if exists test; +create database test; diff --git a/storage/tianchi/ha_tse.cc b/storage/tianchi/ha_tse.cc index be2400b..928fe1c 100644 --- a/storage/tianchi/ha_tse.cc +++ b/storage/tianchi/ha_tse.cc @@ -3961,27 +3961,6 @@ THR_LOCK_DATA **ha_tse::store_lock(THD *, THR_LOCK_DATA **to, return to; } - -int tse_query_cluster_role(bool *is_slave, bool *cantian_cluster_ready) { - void *shm_inst = get_one_shm_inst(NULL); - query_cluster_role_request *req = (query_cluster_role_request*) alloc_share_mem(shm_inst, sizeof(query_cluster_role_request)); - DBUG_EXECUTE_IF("check_init_shm_oom", { req = NULL; }); - if (req == NULL) { - tse_log_error("alloc shm mem error, shm_inst(%p), size(%lu)", shm_inst, sizeof(query_cluster_role_request)); - return ERR_ALLOC_MEMORY; - } - - int result = ERR_CONNECTION_FAILED; - int ret = tse_mq_deal_func(shm_inst, TSE_FUNC_QUERY_CLUSTER_ROLE, req, nullptr); - if (ret == CT_SUCCESS) { - result = req->result; - *is_slave = req->is_slave; - *cantian_cluster_ready = req->cluster_ready; - } - free_share_mem(shm_inst, req); - - return result; -} int32_t tse_get_cluster_role() { if (cluster_role != (int32_t)dis_cluster_role::DEFAULT) { diff --git a/storage/tianchi/tse_srv.h b/storage/tianchi/tse_srv.h index a9fde1e..54623e0 100644 --- a/storage/tianchi/tse_srv.h +++ b/storage/tianchi/tse_srv.h @@ -606,6 +606,7 @@ int tse_update_mysql_dd_cache(char *sql_str); int tse_set_cluster_role_by_cantian(bool is_slave); int ctc_record_sql_for_cantian(tianchi_handler_t *tch, tse_ddl_broadcast_request *broadcast_req, bool allow_fail); +int tse_query_cluster_role(bool *is_slave, bool *cantian_cluster_ready); #ifdef __cplusplus } #endif diff --git a/storage/tianchi/tse_srv_mq_stub.cc b/storage/tianchi/tse_srv_mq_stub.cc index 310fb47..594aae3 100644 --- a/storage/tianchi/tse_srv_mq_stub.cc +++ b/storage/tianchi/tse_srv_mq_stub.cc @@ -1466,3 +1466,24 @@ int ctc_record_sql_for_cantian(tianchi_handler_t *tch, tse_ddl_broadcast_request free_share_mem(shm_inst, req); return result; } + +int tse_query_cluster_role(bool *is_slave, bool *cantian_cluster_ready) { + void *shm_inst = get_one_shm_inst(NULL); + query_cluster_role_request *req = (query_cluster_role_request*) alloc_share_mem(shm_inst, sizeof(query_cluster_role_request)); + DBUG_EXECUTE_IF("check_init_shm_oom", { req = NULL; }); + if (req == NULL) { + tse_log_error("alloc shm mem error, shm_inst(%p), size(%lu)", shm_inst, sizeof(query_cluster_role_request)); + return ERR_ALLOC_MEMORY; + } + + int result = ERR_CONNECTION_FAILED; + int ret = tse_mq_deal_func(shm_inst, TSE_FUNC_QUERY_CLUSTER_ROLE, req, nullptr); + if (ret == CT_SUCCESS) { + result = req->result; + *is_slave = req->is_slave; + *cantian_cluster_ready = req->cluster_ready; + } + free_share_mem(shm_inst, req); + + return result; +} -- Gitee