fix/TS-5262-conflict-return-error

This commit is contained in:
dmchen 2024-08-13 08:29:09 +00:00
parent c15d3ec56a
commit 7bf3206076
2 changed files with 10 additions and 4 deletions

View File

@ -183,7 +183,7 @@ int32_t mndProcessWriteMsg(SMnode *pMnode, SRpcMsg *pMsg, SFsmCbMeta *pMeta) {
code = mndTransValidate(pMnode, pRaw); code = mndTransValidate(pMnode, pRaw);
if (code != 0) { if (code != 0) {
mError("trans:%d, failed to validate requested trans since %s", transId, terrstr()); mError("trans:%d, failed to validate requested trans since %s", transId, terrstr());
code = 0; // code = 0;
pMeta->code = code; pMeta->code = code;
goto _OUT; goto _OUT;
} }
@ -191,7 +191,7 @@ int32_t mndProcessWriteMsg(SMnode *pMnode, SRpcMsg *pMsg, SFsmCbMeta *pMeta) {
code = sdbWriteWithoutFree(pMnode->pSdb, pRaw); code = sdbWriteWithoutFree(pMnode->pSdb, pRaw);
if (code != 0) { if (code != 0) {
mError("trans:%d, failed to write to sdb since %s", transId, terrstr()); mError("trans:%d, failed to write to sdb since %s", transId, terrstr());
code = 0; // code = 0;
pMeta->code = code; pMeta->code = code;
goto _OUT; goto _OUT;
} }
@ -206,7 +206,10 @@ int32_t mndProcessWriteMsg(SMnode *pMnode, SRpcMsg *pMsg, SFsmCbMeta *pMeta) {
if (pTrans->stage == TRN_STAGE_PREPARE) { if (pTrans->stage == TRN_STAGE_PREPARE) {
bool continueExec = mndTransPerformPrepareStage(pMnode, pTrans, false); bool continueExec = mndTransPerformPrepareStage(pMnode, pTrans, false);
if (!continueExec) goto _OUT; if (!continueExec) {
if (terrno != 0) code = terrno;
goto _OUT;
}
} }
mndTransRefresh(pMnode, pTrans); mndTransRefresh(pMnode, pTrans);

View File

@ -1569,6 +1569,7 @@ static int32_t mndTransExecuteUndoActionsSerial(SMnode *pMnode, STrans *pTrans,
bool mndTransPerformPrepareStage(SMnode *pMnode, STrans *pTrans, bool topHalf) { bool mndTransPerformPrepareStage(SMnode *pMnode, STrans *pTrans, bool topHalf) {
bool continueExec = true; bool continueExec = true;
int32_t code = 0; int32_t code = 0;
terrno = 0;
int32_t numOfActions = taosArrayGetSize(pTrans->prepareActions); int32_t numOfActions = taosArrayGetSize(pTrans->prepareActions);
if (numOfActions == 0) goto _OVER; if (numOfActions == 0) goto _OVER;
@ -1579,7 +1580,9 @@ bool mndTransPerformPrepareStage(SMnode *pMnode, STrans *pTrans, bool topHalf) {
STransAction *pAction = taosArrayGet(pTrans->prepareActions, action); STransAction *pAction = taosArrayGet(pTrans->prepareActions, action);
code = mndTransExecSingleAction(pMnode, pTrans, pAction, topHalf); code = mndTransExecSingleAction(pMnode, pTrans, pAction, topHalf);
if (code != 0) { if (code != 0) {
mError("trans:%d, failed to execute prepare action:%d, numOfActions:%d", pTrans->id, action, numOfActions); terrno = code;
mError("trans:%d, failed to execute prepare action:%d, numOfActions:%d, since %s", pTrans->id, action,
numOfActions, tstrerror(code));
return false; return false;
} }
} }