From 3a2ace484c33ad500b86efb0983b9f995dbf99b4 Mon Sep 17 00:00:00 2001 From: shenglian zhou Date: Wed, 14 Jul 2021 11:12:35 +0800 Subject: [PATCH] fix schemaversion error that caused taosd core dump --- src/client/inc/tsclient.h | 1 + src/client/src/tscParseInsert.c | 2 +- src/client/src/tscParseLineProtocol.c | 8 ++++++-- src/client/src/tscPrepare.c | 2 ++ 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/client/inc/tsclient.h b/src/client/inc/tsclient.h index c0a1afda77..efc9914c28 100644 --- a/src/client/inc/tsclient.h +++ b/src/client/inc/tsclient.h @@ -369,6 +369,7 @@ int32_t tscSQLSyntaxErrMsg(char* msg, const char* additionalInfo, const char* s int32_t tscValidateSqlInfo(SSqlObj *pSql, struct SSqlInfo *pInfo); +int32_t tsSetBlockInfo(SSubmitBlk *pBlocks, const STableMeta *pTableMeta, int32_t numOfRows); extern int32_t sentinel; extern SHashObj *tscVgroupMap; extern SHashObj *tscTableMetaInfo; diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 26d9cf0e49..15a157816f 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -643,7 +643,7 @@ int32_t tscAllocateMemIfNeed(STableDataBlocks *pDataBlock, int32_t rowSize, int3 return TSDB_CODE_SUCCESS; } -static int32_t tsSetBlockInfo(SSubmitBlk *pBlocks, const STableMeta *pTableMeta, int32_t numOfRows) { +int32_t tsSetBlockInfo(SSubmitBlk *pBlocks, const STableMeta *pTableMeta, int32_t numOfRows) { pBlocks->tid = pTableMeta->id.tid; pBlocks->uid = pTableMeta->id.uid; pBlocks->sversion = pTableMeta->sversion; diff --git a/src/client/src/tscParseLineProtocol.c b/src/client/src/tscParseLineProtocol.c index 37264e8eaa..f7858f174e 100644 --- a/src/client/src/tscParseLineProtocol.c +++ b/src/client/src/tscParseLineProtocol.c @@ -1140,6 +1140,7 @@ void destroySmlDataPoint(TAOS_SML_DATA_POINT* point) { } int taos_insert_lines(TAOS* taos, char* lines[], int numLines) { + int32_t code = 0; SArray* lpPoints = taosArrayInit(numLines, sizeof(SLPPoint)); tscParseLines(lines, numLines, lpPoints, NULL); @@ -1202,13 +1203,16 @@ int taos_insert_lines(TAOS* taos, char* lines[], int numLines) { } } - taos_sml_insert(taos, points, (int)numPoints); + code = taos_sml_insert(taos, points, (int)numPoints); + if (code != 0) { + tscError("taos_sml_insert error: %s", tstrerror((code))); + } for (int i=0; ipData; pCmd->batchSize = pBlk->numOfRows; + tsSetBlockInfo(pBlk, (*t1)->pTableMeta, pBlk->numOfRows); + taosHashPut(pCmd->insertParam.pTableBlockHashList, (void *)&pStmt->mtb.currentUid, sizeof(pStmt->mtb.currentUid), (void*)t1, POINTER_BYTES); tscDebug("0x%"PRIx64" table:%s is already prepared, uid:%" PRIu64, pSql->self, name, pStmt->mtb.currentUid); -- GitLab