Merge pull request #3489 from taosdata/feature/crash
TD-1272 fix unaddressable errors
This commit is contained in:
commit
e511e59c1a
|
@ -2090,6 +2090,10 @@ int tscProcessRetrieveRspFromNode(SSqlObj *pSql) {
|
||||||
SSqlCmd *pCmd = &pSql->cmd;
|
SSqlCmd *pCmd = &pSql->cmd;
|
||||||
|
|
||||||
SRetrieveTableRsp *pRetrieve = (SRetrieveTableRsp *)pRes->pRsp;
|
SRetrieveTableRsp *pRetrieve = (SRetrieveTableRsp *)pRes->pRsp;
|
||||||
|
if (pRetrieve == NULL) {
|
||||||
|
pRes->code = TSDB_CODE_TSC_OUT_OF_MEMORY;
|
||||||
|
return pRes->code;
|
||||||
|
}
|
||||||
|
|
||||||
pRes->numOfRows = htonl(pRetrieve->numOfRows);
|
pRes->numOfRows = htonl(pRetrieve->numOfRows);
|
||||||
pRes->precision = htons(pRetrieve->precision);
|
pRes->precision = htons(pRetrieve->precision);
|
||||||
|
|
|
@ -93,11 +93,12 @@ static int32_t vnodeDumpQueryResult(SRspRet *pRet, void* pVnode, void** handle,
|
||||||
vDebug("QInfo:%p exec completed, free handle:%d", *handle, *freeHandle);
|
vDebug("QInfo:%p exec completed, free handle:%d", *handle, *freeHandle);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
SRetrieveTableRsp* pRsp = (SRetrieveTableRsp *)rpcMallocCont(sizeof(SRetrieveTableRsp));
|
SRetrieveTableRsp *pRsp = (SRetrieveTableRsp *)rpcMallocCont(sizeof(SRetrieveTableRsp));
|
||||||
memset(pRsp, 0, sizeof(SRetrieveTableRsp));
|
memset(pRsp, 0, sizeof(SRetrieveTableRsp));
|
||||||
pRsp->completed = true;
|
pRsp->completed = true;
|
||||||
|
|
||||||
pRet->rsp = pRsp;
|
pRet->rsp = pRsp;
|
||||||
|
pRet->len = sizeof(SRetrieveTableRsp);
|
||||||
*freeHandle = true;
|
*freeHandle = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,6 +271,7 @@ static int32_t vnodeProcessFetchMsg(SVnodeObj *pVnode, SReadMsg *pReadMsg) {
|
||||||
if (code != TSDB_CODE_SUCCESS) {
|
if (code != TSDB_CODE_SUCCESS) {
|
||||||
//TODO handle malloc failure
|
//TODO handle malloc failure
|
||||||
pRet->rsp = (SRetrieveTableRsp *)rpcMallocCont(sizeof(SRetrieveTableRsp));
|
pRet->rsp = (SRetrieveTableRsp *)rpcMallocCont(sizeof(SRetrieveTableRsp));
|
||||||
|
pRet->len = sizeof(SRetrieveTableRsp);
|
||||||
memset(pRet->rsp, 0, sizeof(SRetrieveTableRsp));
|
memset(pRet->rsp, 0, sizeof(SRetrieveTableRsp));
|
||||||
freeHandle = true;
|
freeHandle = true;
|
||||||
} else { // result is not ready, return immediately
|
} else { // result is not ready, return immediately
|
||||||
|
|
Loading…
Reference in New Issue