Commit 76678a48 authored by unknown's avatar unknown
Browse files

BUG#24793 Add SO_KEEPALIVE socket option to avoid cluster nodes keeping dead connections forever.


ndb/src/common/transporter/TCP_Transporter.cpp:
  Add SO_KEEPALIVE socket option
parent 3a6ee28e
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -155,6 +155,8 @@ TCP_Transporter::initTransporter() {

void
TCP_Transporter::setSocketOptions(){
  int sockOptKeepAlive  = 1;

  if (setsockopt(theSocket, SOL_SOCKET, SO_RCVBUF,
                 (char*)&sockOptRcvBufSize, sizeof(sockOptRcvBufSize)) < 0) {
#ifdef DEBUG_TRANSPORTER
@@ -169,6 +171,11 @@ TCP_Transporter::setSocketOptions(){
#endif
  }//if
  
  if (setsockopt(theSocket, SOL_SOCKET, SO_KEEPALIVE,
                 (char*)&sockOptKeepAlive, sizeof(sockOptKeepAlive)) < 0) {
    ndbout_c("The setsockopt SO_KEEPALIVE error code = %d", InetErrno);
  }//if

  //-----------------------------------------------
  // Set the TCP_NODELAY option so also small packets are sent
  // as soon as possible