fix: invalid read after teardown udfs and close uv pipe later
This commit is contained in:
parent
fb658fda1b
commit
863d2aa1f4
|
@ -1183,7 +1183,9 @@ void onUdfcPipeClose(uv_handle_t *handle) {
|
||||||
QUEUE_REMOVE(&task->procTaskQueue);
|
QUEUE_REMOVE(&task->procTaskQueue);
|
||||||
uv_sem_post(&task->taskSem);
|
uv_sem_post(&task->taskSem);
|
||||||
}
|
}
|
||||||
conn->session->udfUvPipe = NULL;
|
if (conn->session != NULL) {
|
||||||
|
conn->session->udfUvPipe = NULL;
|
||||||
|
}
|
||||||
taosMemoryFree(conn->readBuf.buf);
|
taosMemoryFree(conn->readBuf.buf);
|
||||||
taosMemoryFree(conn);
|
taosMemoryFree(conn);
|
||||||
taosMemoryFree((uv_pipe_t *) handle);
|
taosMemoryFree((uv_pipe_t *) handle);
|
||||||
|
@ -1821,7 +1823,10 @@ int32_t doTeardownUdf(UdfcFuncHandle handle) {
|
||||||
udfcRunUdfUvTask(task, UV_TASK_DISCONNECT);
|
udfcRunUdfUvTask(task, UV_TASK_DISCONNECT);
|
||||||
|
|
||||||
fnInfo("tear down udf. udf name: %s, udf func handle: %p", session->udfName, handle);
|
fnInfo("tear down udf. udf name: %s, udf func handle: %p", session->udfName, handle);
|
||||||
|
if (session->udfUvPipe->data != NULL) {
|
||||||
|
SClientUvConn *conn = session->udfUvPipe->data;
|
||||||
|
conn->session = NULL;
|
||||||
|
}
|
||||||
taosMemoryFree(session);
|
taosMemoryFree(session);
|
||||||
taosMemoryFree(task);
|
taosMemoryFree(task);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue