diff options
author | unknown <stewart@willster.(none)> | 2006-06-29 22:36:27 +1000 |
---|---|---|
committer | unknown <stewart@willster.(none)> | 2006-06-29 22:36:27 +1000 |
commit | f8162708b0b5cd89c930818ed6f4cc954fc55b2d (patch) | |
tree | cce74c0bbaf7e71048413468dbd5c1407f602eb3 /storage/ndb/src/kernel/blocks/backup/Backup.cpp | |
parent | 9607b202c756bbd305515c1c422fd9e1ad73b4f6 (diff) | |
parent | d2a491b57c792cf04d8c35cf9f2d5204b806b5ef (diff) | |
download | mariadb-git-f8162708b0b5cd89c930818ed6f4cc954fc55b2d.tar.gz |
Merge mysql.com:/home/stewart/Documents/MySQL/5.1/bug17928
into mysql.com:/home/stewart/Documents/MySQL/5.1/ndb
storage/ndb/src/kernel/blocks/backup/Backup.cpp:
Auto merged
Diffstat (limited to 'storage/ndb/src/kernel/blocks/backup/Backup.cpp')
-rw-r--r-- | storage/ndb/src/kernel/blocks/backup/Backup.cpp | 51 |
1 files changed, 34 insertions, 17 deletions
diff --git a/storage/ndb/src/kernel/blocks/backup/Backup.cpp b/storage/ndb/src/kernel/blocks/backup/Backup.cpp index 41f140ab5ae..2e8d8b548ce 100644 --- a/storage/ndb/src/kernel/blocks/backup/Backup.cpp +++ b/storage/ndb/src/kernel/blocks/backup/Backup.cpp @@ -3932,19 +3932,37 @@ Backup::checkFile(Signal* signal, BackupFilePtr filePtr) FsAppendReq::SignalLength, JBA); return; }//if - - filePtr.p->fileRunning = 0; - filePtr.p->fileClosing = 1; - - FsCloseReq * req = (FsCloseReq *)signal->getDataPtrSend(); - req->filePointer = filePtr.p->filePointer; - req->userPointer = filePtr.i; - req->userReference = reference(); - req->fileFlag = 0; + +#ifdef DEBUG_ABORT + Uint32 running= filePtr.p->fileRunning; + Uint32 closing= filePtr.p->fileClosing; +#endif + + if(!filePtr.p->fileClosing) + { + filePtr.p->fileRunning = 0; + filePtr.p->fileClosing = 1; + + FsCloseReq * req = (FsCloseReq *)signal->getDataPtrSend(); + req->filePointer = filePtr.p->filePointer; + req->userPointer = filePtr.i; + req->userReference = reference(); + req->fileFlag = 0; +#ifdef DEBUG_ABORT + ndbout_c("***** a FSCLOSEREQ filePtr.i = %u run=%d cl=%d", filePtr.i, + running, closing); +#endif + sendSignal(NDBFS_REF, GSN_FSCLOSEREQ, signal, FsCloseReq::SignalLength, JBA); + } + else + { #ifdef DEBUG_ABORT - ndbout_c("***** a FSCLOSEREQ filePtr.i = %u", filePtr.i); + ndbout_c("***** a NOT SENDING FSCLOSEREQ filePtr.i = %u run=%d cl=%d", + filePtr.i, + running, closing); #endif - sendSignal(NDBFS_REF, GSN_FSCLOSEREQ, signal, FsCloseReq::SignalLength, JBA); + + } } @@ -4195,9 +4213,7 @@ Backup::closeFiles(Signal* sig, BackupRecordPtr ptr) jam(); continue; }//if - - filePtr.p->fileClosing = 1; - + if(filePtr.p->fileRunning == 1){ jam(); #ifdef DEBUG_ABORT @@ -4206,7 +4222,10 @@ Backup::closeFiles(Signal* sig, BackupRecordPtr ptr) filePtr.p->operation.dataBuffer.eof(); } else { jam(); - + filePtr.p->fileClosing = 1; + filePtr.p->operation.dataBuffer.eof(); + checkFile(sig, filePtr); // make sure we write everything before closing + FsCloseReq * req = (FsCloseReq *)sig->getDataPtrSend(); req->filePointer = filePtr.p->filePointer; req->userPointer = filePtr.i; @@ -4668,7 +4687,6 @@ Backup::execLCP_PREPARE_REQ(Signal* signal) jam(); BackupFilePtr filePtr; c_backupFilePool.getPtr(filePtr, ptr.p->dataFilePtr); - filePtr.p->fileClosing = 1; filePtr.p->operation.dataBuffer.eof(); } @@ -4760,7 +4778,6 @@ Backup::execEND_LCPREQ(Signal* signal) BackupFilePtr filePtr; c_backupFilePool.getPtr(filePtr, ptr.p->dataFilePtr); - filePtr.p->fileClosing = 1; filePtr.p->operation.dataBuffer.eof(); return; } |