mirror of
https://github.com/MariaDB/server.git
synced 2025-12-04 17:23:46 +03:00
Bug #11221 Mysqld does not automatically reconnecting to cluster with cluster restart
This commit is contained in:
@@ -56,7 +56,7 @@ const Uint32 MAX_MESSAGE_SIZE = (12+4+4+(4*25)+(3*4)+4*MAX_SECTION_SIZE);
|
||||
* information specific to a transporter type.
|
||||
*/
|
||||
struct TransporterConfiguration {
|
||||
Uint32 port;
|
||||
Int32 s_port; // negative port number implies dynamic port
|
||||
const char *remoteHostName;
|
||||
const char *localHostName;
|
||||
NodeId remoteNodeId;
|
||||
|
||||
@@ -271,14 +271,12 @@ IPCConfig::configureTransporters(Uint32 nodeId,
|
||||
|
||||
If we're not using dynamic ports, we don't do anything.
|
||||
*/
|
||||
if((int)server_port<0)
|
||||
server_port= -server_port;
|
||||
|
||||
conf.localNodeId = nodeId;
|
||||
conf.remoteNodeId = remoteNodeId;
|
||||
conf.checksum = checksum;
|
||||
conf.signalId = sendSignalId;
|
||||
conf.port = server_port;
|
||||
conf.s_port = server_port;
|
||||
conf.localHostName = localHostName;
|
||||
conf.remoteHostName = remoteHostName;
|
||||
|
||||
@@ -350,7 +348,7 @@ IPCConfig::configureTransporters(Uint32 nodeId,
|
||||
if (!iter.get(CFG_TCP_PROXY, &proxy)) {
|
||||
if (strlen(proxy) > 0 && nodeId2 == nodeId) {
|
||||
// TODO handle host:port
|
||||
conf.port = atoi(proxy);
|
||||
conf.s_port = atoi(proxy);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -290,7 +290,7 @@ TransporterRegistry::createTCPTransporter(TransporterConfiguration *config) {
|
||||
config->tcp.maxReceiveSize,
|
||||
config->localHostName,
|
||||
config->remoteHostName,
|
||||
config->port,
|
||||
config->s_port,
|
||||
config->isMgmConnection,
|
||||
localNodeId,
|
||||
config->remoteNodeId,
|
||||
@@ -392,7 +392,7 @@ TransporterRegistry::createSCITransporter(TransporterConfiguration *config) {
|
||||
SCI_Transporter * t = new SCI_Transporter(*this,
|
||||
config->localHostName,
|
||||
config->remoteHostName,
|
||||
config->port,
|
||||
config->s_port,
|
||||
config->isMgmConnection,
|
||||
config->sci.sendLimit,
|
||||
config->sci.bufferSize,
|
||||
@@ -458,7 +458,7 @@ TransporterRegistry::createSHMTransporter(TransporterConfiguration *config) {
|
||||
SHM_Transporter * t = new SHM_Transporter(*this,
|
||||
config->localHostName,
|
||||
config->remoteHostName,
|
||||
config->port,
|
||||
config->s_port,
|
||||
config->isMgmConnection,
|
||||
localNodeId,
|
||||
config->remoteNodeId,
|
||||
@@ -1170,7 +1170,10 @@ TransporterRegistry::do_connect(NodeId node_id)
|
||||
case DISCONNECTING:
|
||||
break;
|
||||
}
|
||||
DBUG_ENTER("TransporterRegistry::do_connect");
|
||||
DBUG_PRINT("info",("performStates[%d]=CONNECTING",node_id));
|
||||
curr_state= CONNECTING;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
void
|
||||
TransporterRegistry::do_disconnect(NodeId node_id)
|
||||
@@ -1186,21 +1189,30 @@ TransporterRegistry::do_disconnect(NodeId node_id)
|
||||
case DISCONNECTING:
|
||||
return;
|
||||
}
|
||||
DBUG_ENTER("TransporterRegistry::do_disconnect");
|
||||
DBUG_PRINT("info",("performStates[%d]=DISCONNECTING",node_id));
|
||||
curr_state= DISCONNECTING;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void
|
||||
TransporterRegistry::report_connect(NodeId node_id)
|
||||
{
|
||||
DBUG_ENTER("TransporterRegistry::report_connect");
|
||||
DBUG_PRINT("info",("performStates[%d]=CONNECTED",node_id));
|
||||
performStates[node_id] = CONNECTED;
|
||||
reportConnect(callbackObj, node_id);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void
|
||||
TransporterRegistry::report_disconnect(NodeId node_id, int errnum)
|
||||
{
|
||||
DBUG_ENTER("TransporterRegistry::report_connect");
|
||||
DBUG_PRINT("info",("performStates[%d]=DISCONNECTED",node_id));
|
||||
performStates[node_id] = DISCONNECTED;
|
||||
reportDisconnect(callbackObj, node_id, errnum);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
Reference in New Issue
Block a user