Backport to 2.2: Simplify mxs1743_rconn_bitmask
The test now uses maxctrl to count how many connections there are. This helps avoid creating new users on the database and works around the slave syncing problems.
This commit is contained in:
parent
9284e8e64c
commit
bec33be672
@ -39,53 +39,33 @@ int main(int argc, char** argv)
|
||||
test.tprintf("Checking that both the master and slave are used");
|
||||
std::vector<MYSQL*> connections;
|
||||
|
||||
test.set_timeout(60);
|
||||
test.repl->connect();
|
||||
execute_query_silent(test.repl->nodes[0], "DROP USER IF EXISTS 'mxs1743'@'%'");
|
||||
test.try_query(test.repl->nodes[0], "%s", "CREATE USER 'mxs1743'@'%' IDENTIFIED BY 'mxs1743'");
|
||||
test.try_query(test.repl->nodes[0], "%s", "GRANT ALL ON *.* TO 'mxs1743'@'%'");
|
||||
|
||||
test.tprintf("Syncing slaves");
|
||||
test.stop_timeout();
|
||||
test.repl->fix_replication();
|
||||
test.repl->sync_slaves();
|
||||
test.set_timeout(60);
|
||||
|
||||
test.tprintf("Opening new connections to verify readconnroute works");
|
||||
|
||||
for (int i = 0; i < 20; i++)
|
||||
{
|
||||
// Open a connection and make sure it works
|
||||
test.set_timeout(20);
|
||||
MYSQL* conn = open_conn(test.maxscales->readconn_master_port[0], test.maxscales->IP[0],
|
||||
"mxs1743", "mxs1743", false);
|
||||
MYSQL* conn = test.maxscales->open_readconn_master_connection();
|
||||
test.try_query(conn, "SELECT 1");
|
||||
connections.push_back(conn);
|
||||
test.stop_timeout();
|
||||
}
|
||||
|
||||
// Give the connections a few seconds to establish
|
||||
sleep(5);
|
||||
int rc;
|
||||
char* s1 = test.maxscales->ssh_node_output(0, "maxctrl --tsv list servers|grep server1|cut -f 4", true, &rc);
|
||||
char* s2 = test.maxscales->ssh_node_output(0, "maxctrl --tsv list servers|grep server2|cut -f 4", true, &rc);
|
||||
|
||||
test.tprintf("Checking the number of connections");
|
||||
std::string query = "SELECT COUNT(*) AS connections FROM information_schema.processlist WHERE user = 'mxs1743'";
|
||||
char master_connections[1024];
|
||||
char slave_connections[1024];
|
||||
test.set_timeout(60);
|
||||
find_field(test.repl->nodes[0], query.c_str(), "connections", master_connections);
|
||||
find_field(test.repl->nodes[1], query.c_str(), "connections", slave_connections);
|
||||
|
||||
test.expect(strcmp(master_connections, slave_connections) == 0,
|
||||
test.expect(strcmp(s1, s2) == 0,
|
||||
"Master and slave shoud have the same amount of connections: %s != %s",
|
||||
master_connections, slave_connections);
|
||||
s1, s2);
|
||||
|
||||
for (auto a: connections)
|
||||
free(s1);
|
||||
free(s2);
|
||||
|
||||
for (auto a : connections)
|
||||
{
|
||||
mysql_close(a);
|
||||
}
|
||||
|
||||
execute_query_silent(test.repl->nodes[0], "DROP USER 'mxs1743'@'%'");
|
||||
test.repl->disconnect();
|
||||
|
||||
return test.global_result;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user