mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 14:02:32 +01:00
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
This commit is contained in:
parent
32b71c76fc
commit
e9e8b0bcbb
2 changed files with 10 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue