From 8f40aef254757ca90ce2cafb71eb2ff9c1dd7122 Mon Sep 17 00:00:00 2001 From: Cary Xu Date: Mon, 6 Dec 2021 10:12:26 +0800 Subject: [PATCH] debug --- src/os/inc/osSocket.h | 19 +++++++++++-------- src/sync/src/syncMain.c | 9 +++++++-- src/sync/src/syncTcp.c | 4 +++- src/util/src/ttimer.c | 1 + 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/os/inc/osSocket.h b/src/os/inc/osSocket.h index a172c0bf34..7dabd161b4 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 e9c66adaac..565a84f21c 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 ccb0a67e5c..f69c7e137a 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 865e1159c1..f9ba6be63e 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; } -- GitLab