From 4f7886d2083c880d3ec66bca56557ccad31cccd9 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Thu, 12 May 2022 15:29:19 +0800 Subject: [PATCH] fix(rpc): avoid fd leak --- source/libs/transport/src/transSrv.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/libs/transport/src/transSrv.c b/source/libs/transport/src/transSrv.c index d0d45f11e3..a459e604ad 100644 --- a/source/libs/transport/src/transSrv.c +++ b/source/libs/transport/src/transSrv.c @@ -363,6 +363,10 @@ void uvOnSendCb(uv_write_t* req, int status) { if (msg->type == Release && conn->status != ConnNormal) { conn->status = ConnNormal; transUnrefSrvHandle(conn); + reallocConnRefHandle(conn); + destroySmsg(msg); + transQueueClear(&conn->srvMsgs); + return; } destroySmsg(msg); // send second data, just use for push @@ -973,7 +977,7 @@ void uvHandleQuit(SSrvMsg* msg, SWorkThrdObj* thrd) { } void uvHandleRelease(SSrvMsg* msg, SWorkThrdObj* thrd) { SSrvConn* conn = msg->pConn; - reallocConnRefHandle(conn); + // reallocConnRefHandle(conn); if (conn->status == ConnAcquire) { if (!transQueuePush(&conn->srvMsgs, msg)) { return;