Loading ndb/src/kernel/blocks/backup/Backup.cpp +39 −33 Original line number Diff line number Diff line Loading @@ -859,20 +859,20 @@ Backup::execBACKUP_REQ(Signal* signal) if(getOwnNodeId() != getMasterNodeId()) { jam(); sendBackupRef(senderRef, signal, senderData, BackupRef::IAmNotMaster); sendBackupRef(senderRef, flags, signal, senderData, BackupRef::IAmNotMaster); return; }//if if (m_diskless) { sendBackupRef(senderRef, signal, senderData, sendBackupRef(senderRef, flags, signal, senderData, BackupRef::CannotBackupDiskless); return; } if(dataLen32 != 0) { jam(); sendBackupRef(senderRef, signal, senderData, sendBackupRef(senderRef, flags, signal, senderData, BackupRef::BackupDefinitionNotImplemented); return; }//if Loading @@ -887,7 +887,7 @@ Backup::execBACKUP_REQ(Signal* signal) c_backups.seize(ptr); if(ptr.i == RNIL) { jam(); sendBackupRef(senderRef, signal, senderData, BackupRef::OutOfBackupRecord); sendBackupRef(senderRef, flags, signal, senderData, BackupRef::OutOfBackupRecord); return; }//if Loading Loading @@ -936,23 +936,23 @@ void Backup::sendBackupRef(Signal* signal, BackupRecordPtr ptr, Uint32 errorCode) { jam(); if (SEND_BACKUP_STARTED_FLAG(ptr.p->flags)) { sendBackupRef(ptr.p->clientRef, signal, ptr.p->clientData, errorCode); } sendBackupRef(ptr.p->clientRef, ptr.p->flags, signal, ptr.p->clientData, errorCode); cleanup(signal, ptr); } void Backup::sendBackupRef(BlockReference senderRef, Signal *signal, Backup::sendBackupRef(BlockReference senderRef, Uint32 flags, Signal *signal, Uint32 senderData, Uint32 errorCode) { jam(); if (SEND_BACKUP_STARTED_FLAG(flags)) { BackupRef* ref = (BackupRef*)signal->getDataPtrSend(); ref->senderData = senderData; ref->errorCode = errorCode; ref->masterRef = numberToRef(BACKUP, getMasterNodeId()); sendSignal(senderRef, GSN_BACKUP_REF, signal, BackupRef::SignalLength, JBB); } if(errorCode != BackupRef::IAmNotMaster){ signal->theData[0] = EventReport::BackupFailedToStart; Loading Loading @@ -1204,12 +1204,12 @@ Backup::defineBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId) */ CRASH_INSERTION((10034)); if (SEND_BACKUP_STARTED_FLAG(ptr.p->flags)) { BackupConf * conf = (BackupConf*)signal->getDataPtrSend(); conf->backupId = ptr.p->backupId; conf->senderData = ptr.p->clientData; conf->nodes = ptr.p->nodes; if (SEND_BACKUP_STARTED_FLAG(ptr.p->flags)) { sendSignal(ptr.p->clientRef, GSN_BACKUP_CONF, signal, BackupConf::SignalLength, JBB); } Loading Loading @@ -2093,6 +2093,8 @@ Backup::stopBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId) sendAbortBackupOrd(signal, ptr, AbortBackupOrd::BackupComplete); if(!ptr.p->checkError()) { if (SEND_BACKUP_COMPLETED_FLAG(ptr.p->flags)) { BackupCompleteRep * rep = (BackupCompleteRep*)signal->getDataPtrSend(); rep->backupId = ptr.p->backupId; Loading @@ -2104,8 +2106,6 @@ Backup::stopBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId) rep->noOfLogBytes = ptr.p->noOfLogBytes; rep->noOfLogRecords = ptr.p->noOfLogRecords; rep->nodes = ptr.p->nodes; if (SEND_BACKUP_COMPLETED_FLAG(ptr.p->flags)) { sendSignal(ptr.p->clientRef, GSN_BACKUP_COMPLETE_REP, signal, BackupCompleteRep::SignalLength, JBB); } Loading Loading @@ -2146,12 +2146,12 @@ Backup::masterAbort(Signal* signal, BackupRecordPtr ptr) return; } if (SEND_BACKUP_COMPLETED_FLAG(ptr.p->flags)) { BackupAbortRep* rep = (BackupAbortRep*)signal->getDataPtrSend(); rep->backupId = ptr.p->backupId; rep->senderData = ptr.p->clientData; rep->reason = ptr.p->errorCode; if (SEND_BACKUP_COMPLETED_FLAG(ptr.p->flags)) { sendSignal(ptr.p->clientRef, GSN_BACKUP_ABORT_REP, signal, BackupAbortRep::SignalLength, JBB); } Loading Loading @@ -2286,7 +2286,13 @@ Backup::execDEFINE_BACKUP_REQ(Signal* signal) ptr.p->errorCode = 0; ptr.p->clientRef = req->clientRef; ptr.p->clientData = req->clientData; if(senderRef == reference()) ptr.p->flags = req->flags; else ptr.p->flags = req->flags & ~((Uint32)0x3); /* remove waitCompleted flags * as non master should never * reply */ ptr.p->masterRef = senderRef; ptr.p->nodes = req->nodes; ptr.p->backupId = backupId; Loading Loading
ndb/src/kernel/blocks/backup/Backup.cpp +39 −33 Original line number Diff line number Diff line Loading @@ -859,20 +859,20 @@ Backup::execBACKUP_REQ(Signal* signal) if(getOwnNodeId() != getMasterNodeId()) { jam(); sendBackupRef(senderRef, signal, senderData, BackupRef::IAmNotMaster); sendBackupRef(senderRef, flags, signal, senderData, BackupRef::IAmNotMaster); return; }//if if (m_diskless) { sendBackupRef(senderRef, signal, senderData, sendBackupRef(senderRef, flags, signal, senderData, BackupRef::CannotBackupDiskless); return; } if(dataLen32 != 0) { jam(); sendBackupRef(senderRef, signal, senderData, sendBackupRef(senderRef, flags, signal, senderData, BackupRef::BackupDefinitionNotImplemented); return; }//if Loading @@ -887,7 +887,7 @@ Backup::execBACKUP_REQ(Signal* signal) c_backups.seize(ptr); if(ptr.i == RNIL) { jam(); sendBackupRef(senderRef, signal, senderData, BackupRef::OutOfBackupRecord); sendBackupRef(senderRef, flags, signal, senderData, BackupRef::OutOfBackupRecord); return; }//if Loading Loading @@ -936,23 +936,23 @@ void Backup::sendBackupRef(Signal* signal, BackupRecordPtr ptr, Uint32 errorCode) { jam(); if (SEND_BACKUP_STARTED_FLAG(ptr.p->flags)) { sendBackupRef(ptr.p->clientRef, signal, ptr.p->clientData, errorCode); } sendBackupRef(ptr.p->clientRef, ptr.p->flags, signal, ptr.p->clientData, errorCode); cleanup(signal, ptr); } void Backup::sendBackupRef(BlockReference senderRef, Signal *signal, Backup::sendBackupRef(BlockReference senderRef, Uint32 flags, Signal *signal, Uint32 senderData, Uint32 errorCode) { jam(); if (SEND_BACKUP_STARTED_FLAG(flags)) { BackupRef* ref = (BackupRef*)signal->getDataPtrSend(); ref->senderData = senderData; ref->errorCode = errorCode; ref->masterRef = numberToRef(BACKUP, getMasterNodeId()); sendSignal(senderRef, GSN_BACKUP_REF, signal, BackupRef::SignalLength, JBB); } if(errorCode != BackupRef::IAmNotMaster){ signal->theData[0] = EventReport::BackupFailedToStart; Loading Loading @@ -1204,12 +1204,12 @@ Backup::defineBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId) */ CRASH_INSERTION((10034)); if (SEND_BACKUP_STARTED_FLAG(ptr.p->flags)) { BackupConf * conf = (BackupConf*)signal->getDataPtrSend(); conf->backupId = ptr.p->backupId; conf->senderData = ptr.p->clientData; conf->nodes = ptr.p->nodes; if (SEND_BACKUP_STARTED_FLAG(ptr.p->flags)) { sendSignal(ptr.p->clientRef, GSN_BACKUP_CONF, signal, BackupConf::SignalLength, JBB); } Loading Loading @@ -2093,6 +2093,8 @@ Backup::stopBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId) sendAbortBackupOrd(signal, ptr, AbortBackupOrd::BackupComplete); if(!ptr.p->checkError()) { if (SEND_BACKUP_COMPLETED_FLAG(ptr.p->flags)) { BackupCompleteRep * rep = (BackupCompleteRep*)signal->getDataPtrSend(); rep->backupId = ptr.p->backupId; Loading @@ -2104,8 +2106,6 @@ Backup::stopBackupReply(Signal* signal, BackupRecordPtr ptr, Uint32 nodeId) rep->noOfLogBytes = ptr.p->noOfLogBytes; rep->noOfLogRecords = ptr.p->noOfLogRecords; rep->nodes = ptr.p->nodes; if (SEND_BACKUP_COMPLETED_FLAG(ptr.p->flags)) { sendSignal(ptr.p->clientRef, GSN_BACKUP_COMPLETE_REP, signal, BackupCompleteRep::SignalLength, JBB); } Loading Loading @@ -2146,12 +2146,12 @@ Backup::masterAbort(Signal* signal, BackupRecordPtr ptr) return; } if (SEND_BACKUP_COMPLETED_FLAG(ptr.p->flags)) { BackupAbortRep* rep = (BackupAbortRep*)signal->getDataPtrSend(); rep->backupId = ptr.p->backupId; rep->senderData = ptr.p->clientData; rep->reason = ptr.p->errorCode; if (SEND_BACKUP_COMPLETED_FLAG(ptr.p->flags)) { sendSignal(ptr.p->clientRef, GSN_BACKUP_ABORT_REP, signal, BackupAbortRep::SignalLength, JBB); } Loading Loading @@ -2286,7 +2286,13 @@ Backup::execDEFINE_BACKUP_REQ(Signal* signal) ptr.p->errorCode = 0; ptr.p->clientRef = req->clientRef; ptr.p->clientData = req->clientData; if(senderRef == reference()) ptr.p->flags = req->flags; else ptr.p->flags = req->flags & ~((Uint32)0x3); /* remove waitCompleted flags * as non master should never * reply */ ptr.p->masterRef = senderRef; ptr.p->nodes = req->nodes; ptr.p->backupId = backupId; Loading