Commit 26917822 authored by unknown's avatar unknown

ndb - fix 5.1 scan error handling problem

  Make sure that error gets set corretly also
    when error code directly after taking mutex


storage/ndb/src/ndbapi/NdbScanOperation.cpp:
  Make sure that error gets set corretly also
    when error code directly after taking mutex
parent 8b48a8e8
...@@ -478,10 +478,14 @@ int NdbScanOperation::nextResultImpl(bool fetchAllowed, bool forceSend) ...@@ -478,10 +478,14 @@ int NdbScanOperation::nextResultImpl(bool fetchAllowed, bool forceSend)
*/ */
PollGuard poll_guard(tp, &theNdb->theImpl->theWaiter, PollGuard poll_guard(tp, &theNdb->theImpl->theWaiter,
theNdb->theNdbBlockNumber); theNdb->theNdbBlockNumber);
if(theError.code)
return -1;
Uint32 seq = theNdbCon->theNodeSequence; const Uint32 seq = theNdbCon->theNodeSequence;
if(theError.code)
{
goto err4;
}
if(seq == tp->getNodeSequence(nodeId) && send_next_scan(idx, false) == 0) if(seq == tp->getNodeSequence(nodeId) && send_next_scan(idx, false) == 0)
{ {
...@@ -564,6 +568,10 @@ int NdbScanOperation::nextResultImpl(bool fetchAllowed, bool forceSend) ...@@ -564,6 +568,10 @@ int NdbScanOperation::nextResultImpl(bool fetchAllowed, bool forceSend)
if(theError.code == 0) if(theError.code == 0)
setErrorCode(4028); // seq changed = Node fail setErrorCode(4028); // seq changed = Node fail
break; break;
case -4:
err4:
setErrorCode(theError.code);
break;
} }
theNdbCon->theTransactionIsStarted = false; theNdbCon->theTransactionIsStarted = false;
......
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