Start all tests with read_only disabled

Explicitly checking and setting read_only allows all tests to have a
consistent backend state.
This commit is contained in:
Markus Mäkelä
2018-02-07 09:24:08 +02:00
parent 1cf3de4a74
commit 4420730f31

View File

@ -385,6 +385,7 @@ int Mariadb_nodes::start_replication()
for (int i = 0; i < N; i++)
{
execute_query(nodes[i], "SET GLOBAL read_only=OFF");
execute_query(nodes[i], "STOP SLAVE;");
if (g_require_gtid)
@ -551,6 +552,20 @@ int Mariadb_nodes::unblock_all_nodes()
return rval;
}
bool is_readonly(MYSQL* conn)
{
bool rval = false;
char output[512];
find_field(conn, "SHOW VARIABLES LIKE 'read_only'", "Value", output);
if (strcasecmp(output, "OFF") != 0)
{
rval = true;
}
return rval;
}
bool Mariadb_nodes::check_master_node(MYSQL *conn)
{
bool rval = true;
@ -600,10 +615,7 @@ bool Mariadb_nodes::check_master_node(MYSQL *conn)
}
}
char output[512];
find_field(conn, "SHOW VARIABLES LIKE 'read_only'", "Value", output);
if (strcmp(output, "OFF"))
if (is_readonly(conn))
{
printf("The master is in read-only mode\n");
rval = false;
@ -754,7 +766,8 @@ int Mariadb_nodes::check_replication()
else if (bad_slave_thread_status(nodes[i], "Slave_IO_Running", i) ||
bad_slave_thread_status(nodes[i], "Slave_SQL_Running", i) ||
wrong_replication_type(nodes[i]) ||
multi_source_replication(nodes[i], i))
multi_source_replication(nodes[i], i) ||
is_readonly(nodes[i]))
{
res = 1;
if (verbose)