The last printf is missing placeholder for error message
/ Magnus
----- Reply message -----
Från: "jonas oreland" <jonas@stripped>
Datum: ons, jun 1, 2011 09:51
Rubrik: bzr commit into mysql-5.1-telco-7.1 branch (jonas:4233)
Till: <commits@stripped>
#At file:///home/jonas/src/telco-7.1/ based on revid:jonas@stripped243-szjsl59egnluzloq
4233 jonas oreland 2011-06-01 [merge]
ndb - merge 70 to 71
modified:
storage/ndb/include/transporter/TransporterRegistry.hpp
storage/ndb/src/common/transporter/Transporter.cpp
storage/ndb/src/common/transporter/Transporter.hpp
storage/ndb/src/common/transporter/TransporterRegistry.cpp
storage/ndb/src/mgmsrv/MgmtSrvr.cpp
storage/ndb/src/mgmsrv/MgmtSrvr.hpp
storage/ndb/src/mgmsrv/Services.cpp
=== modified file 'storage/ndb/include/transporter/TransporterRegistry.hpp'
--- a/storage/ndb/include/transporter/TransporterRegistry.hpp 2011-04-09 15:48:21 +0000
+++ b/storage/ndb/include/transporter/TransporterRegistry.hpp 2011-06-01 07:40:49 +0000
@@ -118,7 +118,7 @@ public:
NOTE! Connection should be closed if function
returns false
*/
- bool connect_server(NDB_SOCKET_TYPE sockfd) const;
+ bool connect_server(NDB_SOCKET_TYPE sockfd, BaseString& errormsg) const;
bool connect_client(NdbMgmHandle *h);
=== modified file 'storage/ndb/src/common/transporter/Transporter.cpp'
--- a/storage/ndb/src/common/transporter/Transporter.cpp 2011-02-01 23:27:25 +0000
+++ b/storage/ndb/src/common/transporter/Transporter.cpp 2011-06-01 07:40:49 +0000
@@ -130,18 +130,25 @@ Transporter::configure(const Transporter
bool
-Transporter::connect_server(NDB_SOCKET_TYPE sockfd) {
+Transporter::connect_server(NDB_SOCKET_TYPE sockfd,
+ BaseString& msg) {
// all initial negotiation is done in TransporterRegistry::connect_server
DBUG_ENTER("Transporter::connect_server");
- if(m_connected)
+ if (m_connected)
+ {
+ msg.assfmt("line: %u : already connected ??", __LINE__);
DBUG_RETURN(false);
+ }
// Cache the connect address
my_socket_connect_address(sockfd, &m_connect_address);
if (!connect_server_impl(sockfd))
+ {
+ msg.assfmt("line: %u : connect_server_impl failed", __LINE__);
DBUG_RETURN(false);
+ }
m_connected = true;
=== modified file 'storage/ndb/src/common/transporter/Transporter.hpp'
--- a/storage/ndb/src/common/transporter/Transporter.hpp 2011-02-01 23:27:25 +0000
+++ b/storage/ndb/src/common/transporter/Transporter.hpp 2011-06-01 07:40:49 +0000
@@ -49,7 +49,7 @@ public:
*/
virtual bool connect_client();
bool connect_client(NDB_SOCKET_TYPE sockfd);
- bool connect_server(NDB_SOCKET_TYPE socket);
+ bool connect_server(NDB_SOCKET_TYPE socket, BaseString& errormsg);
/**
* Blocking
=== modified file 'storage/ndb/src/common/transporter/TransporterRegistry.cpp'
--- a/storage/ndb/src/common/transporter/TransporterRegistry.cpp 2011-04-09 15:48:21 +0000
+++ b/storage/ndb/src/common/transporter/TransporterRegistry.cpp 2011-06-01 07:40:49 +0000
@@ -64,7 +64,8 @@ SocketServer::Session * TransporterServi
DBUG_RETURN(0);
}
- if (!m_transporter_registry->connect_server(sockfd))
+ BaseString msg;
+ if (!m_transporter_registry->connect_server(sockfd, msg))
{
NDB_CLOSE_SOCKET(sockfd);
DBUG_RETURN(0);
@@ -305,7 +306,8 @@ TransporterRegistry::init(NodeId nodeId)
}
bool
-TransporterRegistry::connect_server(NDB_SOCKET_TYPE sockfd) const
+TransporterRegistry::connect_server(NDB_SOCKET_TYPE sockfd,
+ BaseString & msg) const
{
DBUG_ENTER("TransporterRegistry::connect_server(sockfd)");
@@ -314,6 +316,7 @@ TransporterRegistry::connect_server(NDB_
SocketInputStream s_input(sockfd);
char buf[11+1+11+1]; // <int> <int>
if (s_input.gets(buf, sizeof(buf)) == 0) {
+ msg.assfmt("line: %u : Failed to get nodeid from client", __LINE__);
DBUG_PRINT("error", ("Failed to read 'hello' from client"));
DBUG_RETURN(false);
}
@@ -328,6 +331,7 @@ TransporterRegistry::connect_server(NDB_
// ok, but with no checks on transporter configuration compatability
break;
default:
+ msg.assfmt("line: %u : Incorrect reply from client: >%s<", __LINE__, buf);
DBUG_PRINT("error", ("Failed to parse 'hello' from client, buf: '%.*s'",
(int)sizeof(buf), buf));
DBUG_RETURN(false);
@@ -341,6 +345,7 @@ TransporterRegistry::connect_server(NDB_
if (nodeId < 0 ||
nodeId >= (int)maxTransporters)
{
+ msg.assfmt("line: %u : Incorrect reply from client: >%s<", __LINE__, buf);
DBUG_PRINT("error", ("Out of range nodeId: %d from client",
nodeId));
DBUG_RETURN(false);
@@ -350,6 +355,8 @@ TransporterRegistry::connect_server(NDB_
Transporter *t= theTransporters[nodeId];
if (t == 0)
{
+ msg.assfmt("line: %u : Incorrect reply from client: >%s<, node: %u",
+ __LINE__, buf, nodeId);
DBUG_PRINT("error", ("No transporter available for node id %d", nodeId));
DBUG_RETURN(false);
}
@@ -357,6 +364,11 @@ TransporterRegistry::connect_server(NDB_
// Check that the transporter should be connecting
if (performStates[nodeId] != TransporterRegistry::CONNECTING)
{
+ msg.assfmt("line: %u : Incorrect state for node %u state: %s (%u)",
+ __LINE__, nodeId,
+ getPerformStateString(performStates[nodeId]),
+ performStates[nodeId]);
+
DBUG_PRINT("error", ("Transporter for node id %d in wrong state",
nodeId));
DBUG_RETURN(false);
@@ -376,15 +388,21 @@ TransporterRegistry::connect_server(NDB_
SocketOutputStream s_output(sockfd);
if (s_output.println("%d %d", t->getLocalNodeId(), t->m_type) < 0)
{
+ msg.assfmt("line: %u : Failed to reply to connecting socket (node: %u)",
+ __LINE__, nodeId);
DBUG_PRINT("error", ("Send of reply failed"));
DBUG_RETURN(false);
}
// Setup transporter (transporter responsible for closing sockfd)
- bool res = t->connect_server(sockfd);
+ bool res = t->connect_server(sockfd, msg);
if (res && performStates[nodeId] != TransporterRegistry::CONNECTING)
{
+ msg.assfmt("line: %u : Incorrect state for node %u state: %s (%u)",
+ __LINE__, nodeId,
+ getPerformStateString(performStates[nodeId]),
+ performStates[nodeId]);
// Connection suceeded, but not connecting anymore, return
// false to close the connection
DBUG_RETURN(false);
=== modified file 'storage/ndb/src/mgmsrv/MgmtSrvr.cpp'
--- a/storage/ndb/src/mgmsrv/MgmtSrvr.cpp 2011-05-12 09:40:20 +0000
+++ b/storage/ndb/src/mgmsrv/MgmtSrvr.cpp 2011-06-01 07:51:41 +0000
@@ -3763,11 +3763,12 @@ MgmtSrvr::getConnectionDbParameter(int n
}
-bool MgmtSrvr::transporter_connect(NDB_SOCKET_TYPE sockfd)
+bool
+MgmtSrvr::transporter_connect(NDB_SOCKET_TYPE sockfd, BaseString& msg)
{
DBUG_ENTER("MgmtSrvr::transporter_connect");
TransporterRegistry* tr= theFacade->get_registry();
- if (!tr->connect_server(sockfd))
+ if (!tr->connect_server(sockfd, msg))
DBUG_RETURN(false);
/*
=== modified file 'storage/ndb/src/mgmsrv/MgmtSrvr.hpp'
--- a/storage/ndb/src/mgmsrv/MgmtSrvr.hpp 2011-04-15 08:09:04 +0000
+++ b/storage/ndb/src/mgmsrv/MgmtSrvr.hpp 2011-06-01 07:40:49 +0000
@@ -345,7 +345,7 @@ public:
int getConnectionDbParameter(int node1, int node2, int param,
int *value, BaseString& msg);
- bool transporter_connect(NDB_SOCKET_TYPE sockfd);
+ bool transporter_connect(NDB_SOCKET_TYPE sockfd, BaseString& errormsg);
const char *get_connect_address(Uint32 node_id);
void get_connected_nodes(NodeBitmask &connected_nodes) const;
=== modified file 'storage/ndb/src/mgmsrv/Services.cpp'
--- a/storage/ndb/src/mgmsrv/Services.cpp 2011-04-07 10:55:42 +0000
+++ b/storage/ndb/src/mgmsrv/Services.cpp 2011-06-01 07:40:49 +0000
@@ -1786,13 +1786,14 @@ void
MgmApiSession::transporter_connect(Parser_t::Context &ctx,
Properties const &args)
{
- if (!m_mgmsrv.transporter_connect(m_socket))
+ BaseString errormsg;
+ if (!m_mgmsrv.transporter_connect(m_socket, errormsg))
{
// Connection not allowed or failed
g_eventLogger->warning("Failed to convert connection "
- "from '%s' to transporter",
- name());
-
+ "from '%s' to transporter: %s",
+ name(),
+ errormsg.c_str());
// Close the socket to indicate failure to other side
}
else
No bundle (reason: revision is a merge).
--
MySQL Code Commits Mailing List
For list archives: http://lists.mysql.com/commits
To unsubscribe: http://lists.mysql.com/commits?unsub=magnus.blaudd@stripped