From dc48b8af4e3d8be7d87177dacd623c51627e0304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20M=C3=A4kel=C3=A4?= Date: Thu, 8 Mar 2018 12:38:51 +0200 Subject: [PATCH] Fix change_master function The change_master function did not stop slaves on all servers before reconfiguring them. --- maxscale-system-test/mariadb_nodes.cpp | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/maxscale-system-test/mariadb_nodes.cpp b/maxscale-system-test/mariadb_nodes.cpp index 517229e35..fad174864 100644 --- a/maxscale-system-test/mariadb_nodes.cpp +++ b/maxscale-system-test/mariadb_nodes.cpp @@ -257,36 +257,29 @@ int Mariadb_nodes::find_master() int Mariadb_nodes::change_master(int NewMaster, int OldMaster) { - int i; - //int OldMaster = FindMaster(); - char log_file[256]; - char log_pos[256]; - char str[1024]; - - for (i = 0; i < N; i++) + for (int i = 0; i < N; i++) { - if (i != OldMaster) - { - execute_query(nodes[i], (char *) "stop slave;"); - } + execute_query(nodes[i], "STOP SLAVE"); } - execute_query(nodes[NewMaster], "STOP SLAVE"); + execute_query(nodes[NewMaster], "RESET SLAVE ALL"); execute_query(nodes[NewMaster], create_repl_user); + execute_query(nodes[OldMaster], "RESET MASTER"); - execute_query(nodes[OldMaster], "reset master;"); + char log_file[256]; + char log_pos[256]; find_field(nodes[NewMaster], "show master status", "File", &log_file[0]); find_field(nodes[NewMaster], "show master status", "Position", &log_pos[0]); - for (i = 0; i < N; i++) + for (int i = 0; i < N; i++) { if (i != NewMaster) { + char str[1024]; sprintf(str, setup_slave, IP[NewMaster], log_file, log_pos, port[NewMaster]); execute_query(nodes[i], str); } } - //for (i = 0; i < N; i++) {if (i != NewMaster) {execute_query(nodes[i], (char *) "start slave;"); }} } int Mariadb_nodes::stop_node(int node)