MXS-1323: Fix crash on attempted retry of read
When a backend is waiting for a response but no statement is stored for the session, the buffer where the stored statement is copied is not modified. This means that it needs to be initialized to a NULL value. Added a test that checks that the behavior works as expected even with persistent connections. A second test reproduces the crash by executing parallel SET commands while slaves are blocked. There is still a behavioral problem in readwritesplit. If a session command is being executed and it fails on a slave, an error is sent to the client. In this case it would not be necessary to close the session if the master is still alive.
This commit is contained in:
@ -14,6 +14,7 @@
|
||||
#include "sql_const.h"
|
||||
#include <climits>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
|
||||
Mariadb_nodes::Mariadb_nodes(const char *pref, const char *test_cwd, bool verbose):
|
||||
@ -918,6 +919,13 @@ int Mariadb_nodes::get_server_id(int index)
|
||||
return id;
|
||||
}
|
||||
|
||||
std::string Mariadb_nodes::get_server_id_str(int index)
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << get_server_id(index);
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
void Mariadb_nodes::generate_ssh_cmd(char *cmd, int node, const char *ssh, bool sudo)
|
||||
{
|
||||
if (strcmp(IP[node], "127.0.0.1") == 0)
|
||||
|
||||
Reference in New Issue
Block a user