Commit e9e8b0bc authored by unknown's avatar unknown

ndb - replication

  Make sure that SUB_GCP_COMPLETE_ACK is sent uncond, failure to do so can lead to problems...


storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.cpp:
  retry on O_DIRECT
storage/ndb/src/ndbapi/TransporterFacade.cpp:
  Make sure that SUB_GCP_COMPLETE_ACK is sent uncond
parent 32b71c76
......@@ -385,16 +385,23 @@ void AsyncFile::openReq(Request* request)
}
new_flags |= O_CREAT;
}
no_odirect:
if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode)))
{
PRINT_ERRORANDFLAGS(new_flags);
if ((errno == ENOENT ) && (new_flags & O_CREAT))
if ((errno == ENOENT) && (new_flags & O_CREAT))
{
createDirectories();
if (-1 == (theFd = ::open(theFileName.c_str(), new_flags, mode)))
{
#ifdef O_DIRECT
if (new_flags & O_DIRECT)
{
new_flags &= ~O_DIRECT;
goto no_odirect;
}
#endif
PRINT_ERRORANDFLAGS(new_flags);
request->error = errno;
return;
......
......@@ -343,7 +343,7 @@ execute(void * callbackObj, SignalHeader * const header,
Uint32 aNodeId= refToNode(ref);
tSignal.theReceiversBlockNumber= refToBlock(ref);
tSignal.theVerId_signalNumber= GSN_SUB_GCP_COMPLETE_ACK;
theFacade->sendSignal(&tSignal, aNodeId);
theFacade->sendSignalUnCond(&tSignal, aNodeId);
}
break;
}
......
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