diff --git a/src/os/inc/osSocket.h b/src/os/inc/osSocket.h index a172c0bf3465257fe5590ae0a7552cf699a61c10..7dabd161b4788367c86290c7efbee7aeb3e54e65 100644 --- a/src/os/inc/osSocket.h +++ b/src/os/inc/osSocket.h @@ -15,7 +15,6 @@ #ifndef TDENGINE_OS_SOCKET_H #define TDENGINE_OS_SOCKET_H - #ifdef __cplusplus extern "C" { #endif @@ -33,13 +32,17 @@ extern "C" { #define taosReadSocket(fd, buf, len) read(fd, buf, len) #define taosWriteSocket(fd, buf, len) write(fd, buf, len) #define taosCloseSocketNoCheck(x) close(x) - #define taosCloseSocket(x) \ - { \ - if (FD_VALID(x)) { \ - close(x); \ - x = FD_INITIALIZER; \ - } \ - } +static FORCE_INLINE int32_t taosCloseSocket(int x) { + int32_t ret = 0; + if (x > STDERR_FILENO) { + ret = close(x); + x = ((int32_t)-1); + } + if (ret != 0) { + exit(10); + } + return ret; +} #endif #if defined(_TD_WINDOWS_64) || defined(_TD_WINDOWS_32) diff --git a/src/sync/src/syncMain.c b/src/sync/src/syncMain.c index e9c66adaac6c6d70ecbbf3ef59079d344a96099e..565a84f21c6afbea8c06c41da1e35a2bc7845e2a 100644 --- a/src/sync/src/syncMain.c +++ b/src/sync/src/syncMain.c @@ -566,7 +566,10 @@ static void syncClosePeerConn(SSyncPeer *pPeer) { sDebug("%s, pfd:%d sfd:%d will be closed", pPeer->id, pPeer->peerFd, pPeer->syncFd); taosTmrStopA(&pPeer->timer); - taosCloseSocket(pPeer->syncFd); + + if (taosCloseSocket(pPeer->syncFd) != 0) { + exit(4); + } if (pPeer->peerFd >= 0) { pPeer->peerFd = -1; void *pConn = pPeer->pConn; @@ -892,7 +895,9 @@ static void syncRestartPeer(SSyncPeer *pPeer) { int32_t ret = strcmp(pPeer->fqdn, tsNodeFqdn); if (pPeer->nodeId == 0 || ret > 0 || (ret == 0 && pPeer->port > tsSyncPort)) { sDebug("%s, check peer connection in 1000 ms", pPeer->id); - taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer); + if (!taosTmrReset(syncCheckPeerConnection, SYNC_CHECK_INTERVAL, (void *)pPeer->rid, tsSyncTmrCtrl, &pPeer->timer)) { + exit(3); + } } } diff --git a/src/sync/src/syncTcp.c b/src/sync/src/syncTcp.c index ccb0a67e5ca99441a1c3026fee498c36795518c5..f69c7e137ac80da5bf5bfaafc180a1927f15737e 100644 --- a/src/sync/src/syncTcp.c +++ b/src/sync/src/syncTcp.c @@ -168,7 +168,9 @@ void syncFreeTcpConn(void *param) { sDebug("%p TCP connection will be closed, fd:%d", pThread, pConn->fd); pConn->closedByApp = 1; - shutdown(pConn->fd, SHUT_WR); + if (shutdown(pConn->fd, SHUT_WR) != 0) { + exit(2); + } } static void taosProcessBrokenLink(SConnObj *pConn) { diff --git a/src/util/src/ttimer.c b/src/util/src/ttimer.c index 865e1159c1995b2796682d64ee06de02442b7a25..f9ba6be63e90fcca3e632933d7e5433102031a19 100644 --- a/src/util/src/ttimer.c +++ b/src/util/src/ttimer.c @@ -445,6 +445,7 @@ bool taosTmrStop(tmr_h timerId) { bool taosTmrStopA(tmr_h* timerId) { bool ret = taosTmrStop(*timerId); *timerId = NULL; + return ret; }