提交 a58a0e79 编写于 作者: S slzhou

fix: uv task error when the pipe is NULL

上级 2ce5ceb7
...@@ -1098,20 +1098,29 @@ int32_t udfcStartUvTask(SClientUvTaskNode *uvTask) { ...@@ -1098,20 +1098,29 @@ int32_t udfcStartUvTask(SClientUvTaskNode *uvTask) {
} }
case UV_TASK_REQ_RSP: { case UV_TASK_REQ_RSP: {
uv_pipe_t *pipe = uvTask->pipe; uv_pipe_t *pipe = uvTask->pipe;
uv_write_t *write = taosMemoryMalloc(sizeof(uv_write_t)); if (pipe == NULL) {
write->data = uvTask; code = TSDB_CODE_UDF_PIPE_NO_PIPE;
int err = uv_write(write, (uv_stream_t *)pipe, &uvTask->reqBuf, 1, onUdfcPipetWrite); } else {
if (err != 0) { uv_write_t *write = taosMemoryMalloc(sizeof(uv_write_t));
fnError("udfc event loop start req/rsp task uv_write failed. code: %s", uv_strerror(err)); write->data = uvTask;
int err = uv_write(write, (uv_stream_t *)pipe, &uvTask->reqBuf, 1, onUdfcPipetWrite);
if (err != 0) {
fnError("udfc event loop start req/rsp task uv_write failed. code: %s", uv_strerror(err));
}
code = err;
} }
code = err;
break; break;
} }
case UV_TASK_DISCONNECT: { case UV_TASK_DISCONNECT: {
SClientUvConn *conn = uvTask->pipe->data; uv_pipe_t *pipe = uvTask->pipe;
QUEUE_INSERT_TAIL(&conn->taskQueue, &uvTask->connTaskQueue); if (pipe == NULL) {
uv_close((uv_handle_t *) uvTask->pipe, onUdfcPipeClose); code = TSDB_CODE_UDF_PIPE_NO_PIPE;
code = 0; } else {
SClientUvConn *conn = pipe->data;
QUEUE_INSERT_TAIL(&conn->taskQueue, &uvTask->connTaskQueue);
uv_close((uv_handle_t *)uvTask->pipe, onUdfcPipeClose);
code = 0;
}
break; break;
} }
default: { default: {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册