diff --git a/src/system/src/vnodeFile.c b/src/system/src/vnodeFile.c index 05343f4ce41be491b9a6b5e7c6572be9bd61bee8..5b08ecd39b3a3cd06bb286c627dd0077c38772e3 100644 --- a/src/system/src/vnodeFile.c +++ b/src/system/src/vnodeFile.c @@ -770,7 +770,10 @@ _again: if (pMeter->finalNumOfBlocks > 0) { pHeader->compInfoOffset = pMeter->compInfoOffset; compInfoOffset += sizeof(SCompInfo) + pMeter->finalNumOfBlocks * sizeof(SCompBlock) + sizeof(TSCKSUM); + } else { + pHeader->compInfoOffset = 0; } + dTrace("vid:%d sid:%d id:%s, oldBlocks:%d numOfBlocks:%d compInfoOffset:%d", pObj->vnode, pObj->sid, pObj->meterId, pMeter->oldNumOfBlocks, pMeter->finalNumOfBlocks, compInfoOffset); } @@ -1890,4 +1893,4 @@ _broken_exit: tfree(pBlocks); tfree(pHeader); return -1; -} \ No newline at end of file +} diff --git a/src/system/src/vnodeImport.c b/src/system/src/vnodeImport.c index 6d4864d081ddcccea4b52edb9f1eb4a2b7cc4028..9691206bf9cdd7a764e258867f85736cc00aeccf 100644 --- a/src/system/src/vnodeImport.c +++ b/src/system/src/vnodeImport.c @@ -203,9 +203,15 @@ int vnodeOpenFileForImport(SImportInfo *pImport, char *payload, SHeadInfo *pHinf return -1; } - pHinfo->compInfoOffset = pHinfo->headList[pObj->sid].compInfoOffset; - pHinfo->leftOffset = pHinfo->headList[pObj->sid].compInfoOffset + sizeof(SCompInfo); - } else { + if (pHinfo->compInfo.uid == pObj->uid) { + pHinfo->compInfoOffset = pHinfo->headList[pObj->sid].compInfoOffset; + pHinfo->leftOffset = pHinfo->headList[pObj->sid].compInfoOffset + sizeof(SCompInfo); + } else { + pHinfo->headList[pObj->sid].compInfoOffset = 0; + } + } + + if ( pHinfo->headList[pObj->sid].compInfoOffset == 0 ) { memset(&pHinfo->compInfo, 0, sizeof(SCompInfo)); pHinfo->compInfo.uid = pObj->uid;