From 328cde55d5e8161d049de705305ba509eef4dc78 Mon Sep 17 00:00:00 2001 From: yihaoDeng Date: Mon, 20 Feb 2023 18:57:53 +0800 Subject: [PATCH] fix: fix invalid read-write --- source/libs/transport/src/transCli.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/libs/transport/src/transCli.c b/source/libs/transport/src/transCli.c index e470d989a7..0ede6f9b2d 100644 --- a/source/libs/transport/src/transCli.c +++ b/source/libs/transport/src/transCli.c @@ -1087,7 +1087,9 @@ static void cliSendBatchCb(uv_write_t* req, int status) { if (status != 0) { tDebug("%s conn %p failed to send batch msg, batch size:%d, msgLen:%d, reason:%s", CONN_GET_INST_LABEL(conn), conn, p->wLen, p->batchSize, uv_err_name(status)); - cliHandleExcept(conn); + + if (!uv_is_closing((uv_handle_t*)&conn->stream)) cliHandleExcept(conn); + cliHandleBatchReq(nxtBatch, thrd); } else { tDebug("%s conn %p succ to send batch msg, batch size:%d, msgLen:%d", CONN_GET_INST_LABEL(conn), conn, p->wLen, @@ -1100,7 +1102,8 @@ static void cliSendBatchCb(uv_write_t* req, int status) { addConnToPool(thrd->pool, conn); } } else { - // release by other callback + cliDestroyBatch(nxtBatch); + // conn release by other callback } }