diff --git a/source/libs/transport/src/transSvr.c b/source/libs/transport/src/transSvr.c index c00cafb708..d3277d1cc1 100644 --- a/source/libs/transport/src/transSvr.c +++ b/source/libs/transport/src/transSvr.c @@ -907,7 +907,7 @@ static void uvDestroyConn(uv_handle_t* handle) { } static void uvPipeListenCb(uv_stream_t* handle, int status) { if (status != 0) { - tError("server failed to init pipe"); + tError("server failed to init pipe, errmsg: %s", uv_err_name(status)); return; } @@ -945,7 +945,10 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, uv_loop_init(srv->loop); int ret = uv_pipe_init(srv->loop, &srv->pipeListen, 0); - assert(ret == 0); + if (ret != 0) { + tError("failed to init pipe, errmsg: %s", uv_err_name(ret)); + goto End; + } #ifdef WINDOWS char pipeName[64]; @@ -956,10 +959,16 @@ void* transInitServer(uint32_t ip, uint32_t port, char* label, int numOfThreads, taosGetSelfPthreadId()); #endif ret = uv_pipe_bind(&srv->pipeListen, pipeName); - assert(ret == 0); + if (ret != 0) { + tError("failed to bind pipe, errmsg: %s", uv_err_name(ret)); + goto End; + } ret = uv_listen((uv_stream_t*)&srv->pipeListen, SOMAXCONN, uvPipeListenCb); - assert(ret == 0); + if (ret != 0) { + tError("failed to listen pipe, errmsg: %s", uv_err_name(ret)); + goto End; + } for (int i = 0; i < srv->numOfThreads; i++) { SWorkThrd* thrd = (SWorkThrd*)taosMemoryCalloc(1, sizeof(SWorkThrd)); @@ -1082,12 +1091,12 @@ void transCloseServer(void* arg) { if (srv->inited) { uv_async_send(srv->pAcceptAsync); taosThreadJoin(srv->thread, NULL); - } - SRV_RELEASE_UV(srv->loop); + SRV_RELEASE_UV(srv->loop); - for (int i = 0; i < srv->numOfThreads; i++) { - sendQuitToWorkThrd(srv->pThreadObj[i]); - destroyWorkThrd(srv->pThreadObj[i]); + for (int i = 0; i < srv->numOfThreads; i++) { + sendQuitToWorkThrd(srv->pThreadObj[i]); + destroyWorkThrd(srv->pThreadObj[i]); + } } taosMemoryFree(srv->pThreadObj);