
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.
52 lines
770 B
Plaintext
52 lines
770 B
Plaintext
[maxscale]
|
|
threads=###threads###
|
|
log_info=1
|
|
|
|
[MySQL Monitor]
|
|
type=monitor
|
|
module=mysqlmon
|
|
###repl51###
|
|
servers= server1,server2
|
|
user=maxskysql
|
|
passwd= skysql
|
|
monitor_interval=500
|
|
|
|
[RW Split Router]
|
|
type=service
|
|
router= readwritesplit
|
|
servers=server1,server2
|
|
user=maxskysql
|
|
passwd=skysql
|
|
|
|
[RW Split Listener]
|
|
type=listener
|
|
service=RW Split Router
|
|
protocol=MySQLClient
|
|
port=4006
|
|
|
|
[CLI]
|
|
type=service
|
|
router=cli
|
|
|
|
[CLI Listener]
|
|
type=listener
|
|
service=CLI
|
|
protocol=maxscaled
|
|
socket=default
|
|
|
|
[server1]
|
|
type=server
|
|
address=###node_server_IP_1###
|
|
port=###node_server_port_1###
|
|
protocol=MySQLBackend
|
|
persistpoolmax=10
|
|
persistmaxtime=300
|
|
|
|
[server2]
|
|
type=server
|
|
address=###node_server_IP_2###
|
|
port=###node_server_port_2###
|
|
protocol=MySQLBackend
|
|
persistpoolmax=10
|
|
persistmaxtime=300
|