diff --git a/mysql-test/mysql-test-run-ST.pl b/mysql-test/mysql-test-run-ST.pl index ba2f10232713134b885b31a1aae87950da2e31d3..9c330a7f6a5b33564222900cb8c3425d8eabb7a9 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 0000000000000000000000000000000000000000..6640698d6d5377d12d8d3f53eba3a2d3a99ee8fd --- /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 be2400b6692fd4e70aa3f94db5ec5ca01ca15573..928fe1cb1134b617fa9a9efaee96344eefab3767 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 a9fde1e02155d2b5bea652fe15651b8ebbd5a794..54623e0ce8354e1bed031bfc34ee0568c23a949a 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 310fb47c3de703605b89838608d76cca57bd086e..594aae37dbf863f6c77ad6b1215a4ae50988f334 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; +}