fix: uv task error when the pipe is NULL
This commit is contained in:
parent
2ce5ceb754
commit
a58a0e79c6
|
@ -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: {
|
||||||
|
|
Loading…
Reference in New Issue