1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-31 22:22:30 +03:00

Bug #25487 deleting ndb_cluster_connection object takes long time

aim is to:
  a) if set_connect_timeout called, timeout connect attempt (for retry on
  next call) after timeout period
  b) preserve existing blocking behaviour otherwise (for, e.g. mgmapi)
  
  Related to customer issue with long time deleting ndb_cluster_connection
  object. believe we're hanging on the connect(2) call until timeout (when
  we then realise we should exit the thread).


ndb/include/mgmapi/mgmapi.h:
  add ndb_mgm_set_connect_timeout
ndb/include/util/SocketClient.hpp:
  add timeout (seconds) for max time to wait for connection
ndb/src/common/transporter/Transporter.cpp:
  set limit on amount of time we'll wait for tcp connect
ndb/src/common/util/SocketClient.cpp:
  only try to connect for a maximum of timeout time
ndb/src/mgmapi/mgmapi.cpp:
  add ndb_mgm_set_connect_timeout
This commit is contained in:
unknown
2007-01-23 17:07:09 +11:00
parent 188899cdfc
commit 8deeb2f95b
5 changed files with 89 additions and 6 deletions

View File

@@ -23,6 +23,7 @@ class SocketClient
{
NDB_SOCKET_TYPE m_sockfd;
struct sockaddr_in m_servaddr;
unsigned int m_connect_timeout_sec;
unsigned short m_port;
char *m_server_name;
SocketAuthenticator *m_auth;
@@ -34,6 +35,9 @@ public:
m_port = port;
m_servaddr.sin_port = htons(m_port);
};
void set_connect_timeout(unsigned int s) {
m_connect_timeout_sec= s;
}
unsigned short get_port() { return m_port; };
char *get_server_name() { return m_server_name; };
int bind(const char* toaddress, unsigned short toport);