ndb - bug#20296 (recommit in 4.1)

   Make sure that tupkeyErrorLab is run if interpretedUpdate(fail), so that entry is not inserted into index.
     Yeilding crash on following dml on tupel
parent cfd29d00
...@@ -1111,14 +1111,16 @@ Dbtup::updateStartLab(Signal* signal, ...@@ -1111,14 +1111,16 @@ Dbtup::updateStartLab(Signal* signal,
regOperPtr->pageOffset, regOperPtr->pageOffset,
&cinBuffer[0], &cinBuffer[0],
regOperPtr->attrinbufLen); regOperPtr->attrinbufLen);
if (retValue == -1) {
tupkeyErrorLab(signal);
return -1;
}//if
} else { } else {
jam(); jam();
retValue = interpreterStartLab(signal, pagePtr, regOperPtr->pageOffset); retValue = interpreterStartLab(signal, pagePtr, regOperPtr->pageOffset);
}//if }//if
if (retValue == -1) {
tupkeyErrorLab(signal);
return -1;
}//if
ndbrequire(regOperPtr->tupVersion != ZNIL); ndbrequire(regOperPtr->tupVersion != ZNIL);
pagePtr->pageWord[regOperPtr->pageOffset + 1] = regOperPtr->tupVersion; pagePtr->pageWord[regOperPtr->pageOffset + 1] = regOperPtr->tupVersion;
if (regTabPtr->checksumIndicator) { if (regTabPtr->checksumIndicator) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment