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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user