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.
|
* information specific to a transporter type.
|
||||||
*/
|
*/
|
||||||
struct TransporterConfiguration {
|
struct TransporterConfiguration {
|
||||||
Uint32 port;
|
Int32 s_port; // negative port number implies dynamic port
|
||||||
const char *remoteHostName;
|
const char *remoteHostName;
|
||||||
const char *localHostName;
|
const char *localHostName;
|
||||||
NodeId remoteNodeId;
|
NodeId remoteNodeId;
|
||||||
|
|||||||
@@ -271,14 +271,12 @@ IPCConfig::configureTransporters(Uint32 nodeId,
|
|||||||
|
|
||||||
If we're not using dynamic ports, we don't do anything.
|
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.localNodeId = nodeId;
|
||||||
conf.remoteNodeId = remoteNodeId;
|
conf.remoteNodeId = remoteNodeId;
|
||||||
conf.checksum = checksum;
|
conf.checksum = checksum;
|
||||||
conf.signalId = sendSignalId;
|
conf.signalId = sendSignalId;
|
||||||
conf.port = server_port;
|
conf.s_port = server_port;
|
||||||
conf.localHostName = localHostName;
|
conf.localHostName = localHostName;
|
||||||
conf.remoteHostName = remoteHostName;
|
conf.remoteHostName = remoteHostName;
|
||||||
|
|
||||||
@@ -350,7 +348,7 @@ IPCConfig::configureTransporters(Uint32 nodeId,
|
|||||||
if (!iter.get(CFG_TCP_PROXY, &proxy)) {
|
if (!iter.get(CFG_TCP_PROXY, &proxy)) {
|
||||||
if (strlen(proxy) > 0 && nodeId2 == nodeId) {
|
if (strlen(proxy) > 0 && nodeId2 == nodeId) {
|
||||||
// TODO handle host:port
|
// 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->tcp.maxReceiveSize,
|
||||||
config->localHostName,
|
config->localHostName,
|
||||||
config->remoteHostName,
|
config->remoteHostName,
|
||||||
config->port,
|
config->s_port,
|
||||||
config->isMgmConnection,
|
config->isMgmConnection,
|
||||||
localNodeId,
|
localNodeId,
|
||||||
config->remoteNodeId,
|
config->remoteNodeId,
|
||||||
@@ -392,7 +392,7 @@ TransporterRegistry::createSCITransporter(TransporterConfiguration *config) {
|
|||||||
SCI_Transporter * t = new SCI_Transporter(*this,
|
SCI_Transporter * t = new SCI_Transporter(*this,
|
||||||
config->localHostName,
|
config->localHostName,
|
||||||
config->remoteHostName,
|
config->remoteHostName,
|
||||||
config->port,
|
config->s_port,
|
||||||
config->isMgmConnection,
|
config->isMgmConnection,
|
||||||
config->sci.sendLimit,
|
config->sci.sendLimit,
|
||||||
config->sci.bufferSize,
|
config->sci.bufferSize,
|
||||||
@@ -458,7 +458,7 @@ TransporterRegistry::createSHMTransporter(TransporterConfiguration *config) {
|
|||||||
SHM_Transporter * t = new SHM_Transporter(*this,
|
SHM_Transporter * t = new SHM_Transporter(*this,
|
||||||
config->localHostName,
|
config->localHostName,
|
||||||
config->remoteHostName,
|
config->remoteHostName,
|
||||||
config->port,
|
config->s_port,
|
||||||
config->isMgmConnection,
|
config->isMgmConnection,
|
||||||
localNodeId,
|
localNodeId,
|
||||||
config->remoteNodeId,
|
config->remoteNodeId,
|
||||||
@@ -1170,7 +1170,10 @@ TransporterRegistry::do_connect(NodeId node_id)
|
|||||||
case DISCONNECTING:
|
case DISCONNECTING:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
DBUG_ENTER("TransporterRegistry::do_connect");
|
||||||
|
DBUG_PRINT("info",("performStates[%d]=CONNECTING",node_id));
|
||||||
curr_state= CONNECTING;
|
curr_state= CONNECTING;
|
||||||
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
void
|
void
|
||||||
TransporterRegistry::do_disconnect(NodeId node_id)
|
TransporterRegistry::do_disconnect(NodeId node_id)
|
||||||
@@ -1186,21 +1189,30 @@ TransporterRegistry::do_disconnect(NodeId node_id)
|
|||||||
case DISCONNECTING:
|
case DISCONNECTING:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
DBUG_ENTER("TransporterRegistry::do_disconnect");
|
||||||
|
DBUG_PRINT("info",("performStates[%d]=DISCONNECTING",node_id));
|
||||||
curr_state= DISCONNECTING;
|
curr_state= DISCONNECTING;
|
||||||
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TransporterRegistry::report_connect(NodeId node_id)
|
TransporterRegistry::report_connect(NodeId node_id)
|
||||||
{
|
{
|
||||||
|
DBUG_ENTER("TransporterRegistry::report_connect");
|
||||||
|
DBUG_PRINT("info",("performStates[%d]=CONNECTED",node_id));
|
||||||
performStates[node_id] = CONNECTED;
|
performStates[node_id] = CONNECTED;
|
||||||
reportConnect(callbackObj, node_id);
|
reportConnect(callbackObj, node_id);
|
||||||
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TransporterRegistry::report_disconnect(NodeId node_id, int errnum)
|
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;
|
performStates[node_id] = DISCONNECTED;
|
||||||
reportDisconnect(callbackObj, node_id, errnum);
|
reportDisconnect(callbackObj, node_id, errnum);
|
||||||
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
Reference in New Issue
Block a user