Commit c658b990 authored by unknown's avatar unknown

Bug #11221 Mysqld does not automatically reconnecting to cluster with cluster restart

parent 894fd6ae
...@@ -56,7 +56,7 @@ const Uint32 MAX_MESSAGE_SIZE = (12+4+4+(4*25)+(3*4)+4*MAX_SECTION_SIZE); ...@@ -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, ...@@ -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, ...@@ -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) { ...@@ -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) { ...@@ -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) { ...@@ -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) ...@@ -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) ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment