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:
@ -16,6 +16,7 @@
|
||||
|
||||
#include "mariadb_func.h"
|
||||
#include <errno.h>
|
||||
#include <string>
|
||||
|
||||
/**
|
||||
* @brief A class to handle backend nodes
|
||||
@ -329,6 +330,7 @@ public:
|
||||
* @return Node id of the server or -1 on error
|
||||
*/
|
||||
int get_server_id(int index);
|
||||
std::string get_server_id_str(int index);
|
||||
|
||||
/**
|
||||
* @brief Generate command line to execute command on the node via ssh
|
||||
|
||||
Reference in New Issue
Block a user