diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet mysql-5.1.12/storage/ndb/src/common/debugger/signaldata/SignalNames.cpp clean_dolphin_dd_fixes/storage/ndb/src/common/debugger/signaldata/SignalNames.cpp --- mysql-5.1.12/storage/ndb/src/common/debugger/signaldata/SignalNames.cpp 2006-10-16 15:33:30 -04:00 +++ clean_dolphin_dd_fixes/storage/ndb/src/common/debugger/signaldata/SignalNames.cpp 2006-10-21 12:58:08 -04:00 @@ -627,6 +627,14 @@ ,{ GSN_LCP_PREPARE_REF, "LCP_PREPARE_REF" } ,{ GSN_LCP_PREPARE_CONF, "LCP_PREPARE_CONF" } + ,{ GSN_DICT_ABORT_REQ, "DICT_ABORT_REQ" } + ,{ GSN_DICT_ABORT_REF, "DICT_ABORT_REF" } + ,{ GSN_DICT_ABORT_CONF, "DICT_ABORT_CONF" } + + ,{ GSN_DICT_COMMIT_REQ, "DICT_COMMIT_REQ" } + ,{ GSN_DICT_COMMIT_REF, "DICT_COMMIT_REF" } + ,{ GSN_DICT_COMMIT_CONF, "DICT_COMMIT_CONF" } + /* DICT LOCK */ ,{ GSN_DICT_LOCK_REQ, "DICT_LOCK_REQ" } ,{ GSN_DICT_LOCK_CONF, "DICT_LOCK_CONF" } diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet mysql-5.1.12/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp clean_dolphin_dd_fixes/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp --- mysql-5.1.12/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2006-10-16 15:33:30 -04:00 +++ clean_dolphin_dd_fixes/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp 2006-10-21 12:58:08 -04:00 @@ -13602,8 +13602,8 @@ static const DictLockType lt[] = { { DictLockReq::NodeRestartLock, BS_NODE_RESTART, "NodeRestart" } }; - for (int i = 0; i < sizeof(lt)/sizeof(lt[0]); i++) { - if (lt[i].lockType == lockType) + for (Uint32 i = 0; i < sizeof(lt)/sizeof(lt[0]); i++) { + if (lt[i].lockType == (int)lockType) return <[i]; } return NULL; @@ -13977,7 +13977,8 @@ //****************************************** void -Dbdict::execCREATE_FILE_REQ(Signal* signal){ +Dbdict::execCREATE_FILE_REQ(Signal* signal) +{ jamEntry(); if(!assembleFragments(signal)){ @@ -14013,13 +14014,14 @@ Ptr trans_ptr; if (! c_Trans.seize(trans_ptr)){ + jam(); ref->errorCode = CreateFileRef::Busy; ref->status = 0; ref->errorKey = 0; ref->errorLine = __LINE__; break; } - + jam(); const Uint32 trans_key = ++c_opRecordSequence; trans_ptr.p->key = trans_key; trans_ptr.p->m_senderRef = senderRef; @@ -14048,6 +14050,7 @@ { Uint32 objId = getFreeObjId(0); if (objId == RNIL) { + jam(); ref->errorCode = CreateFileRef::NoMoreObjectRecords; ref->status = 0; ref->errorKey = 0; @@ -14072,7 +14075,6 @@ CreateObjReq::SignalLength, JBB); c_blockState = BS_CREATE_TAB; - return; } while(0); @@ -14083,7 +14085,8 @@ } void -Dbdict::execCREATE_FILEGROUP_REQ(Signal* signal){ +Dbdict::execCREATE_FILEGROUP_REQ(Signal* signal) +{ jamEntry(); if(!assembleFragments(signal)){ @@ -14118,13 +14121,14 @@ Ptr trans_ptr; if (! c_Trans.seize(trans_ptr)){ + jam(); ref->errorCode = CreateFilegroupRef::Busy; ref->status = 0; ref->errorKey = 0; ref->errorLine = __LINE__; break; } - + jam(); const Uint32 trans_key = ++c_opRecordSequence; trans_ptr.p->key = trans_key; trans_ptr.p->m_senderRef = senderRef; @@ -14150,6 +14154,7 @@ { Uint32 objId = getFreeObjId(0); if (objId == RNIL) { + jam(); ref->errorCode = CreateFilegroupRef::NoMoreObjectRecords; ref->status = 0; ref->errorKey = 0; @@ -14174,7 +14179,6 @@ CreateObjReq::SignalLength, JBB); c_blockState = BS_CREATE_TAB; - return; } while(0); @@ -14221,6 +14225,7 @@ Ptr file_ptr; if (!c_file_hash.find(file_ptr, objId)) { + jam(); ref->errorCode = DropFileRef::NoSuchFile; ref->errorLine = __LINE__; break; @@ -14228,6 +14233,7 @@ if (file_ptr.p->m_version != version) { + jam(); ref->errorCode = DropFileRef::InvalidSchemaObjectVersion; ref->errorLine = __LINE__; break; @@ -14236,11 +14242,12 @@ Ptr trans_ptr; if (! c_Trans.seize(trans_ptr)) { + jam(); ref->errorCode = CreateFileRef::Busy; ref->errorLine = __LINE__; break; } - + jam(); const Uint32 trans_key = ++c_opRecordSequence; trans_ptr.p->key = trans_key; trans_ptr.p->m_senderRef = senderRef; @@ -14275,7 +14282,6 @@ DropObjReq::SignalLength, JBB); c_blockState = BS_CREATE_TAB; - return; } while(0); @@ -14322,6 +14328,7 @@ Ptr filegroup_ptr; if (!c_filegroup_hash.find(filegroup_ptr, objId)) { + jam(); ref->errorCode = DropFilegroupRef::NoSuchFilegroup; ref->errorLine = __LINE__; break; @@ -14329,6 +14336,7 @@ if (filegroup_ptr.p->m_version != version) { + jam(); ref->errorCode = DropFilegroupRef::InvalidSchemaObjectVersion; ref->errorLine = __LINE__; break; @@ -14337,11 +14345,13 @@ Ptr trans_ptr; if (! c_Trans.seize(trans_ptr)) { + jam(); ref->errorCode = CreateFilegroupRef::Busy; ref->errorLine = __LINE__; break; } - + + jam(); const Uint32 trans_key = ++c_opRecordSequence; trans_ptr.p->key = trans_key; trans_ptr.p->m_senderRef = senderRef; @@ -14376,7 +14386,6 @@ DropObjReq::SignalLength, JBB); c_blockState = BS_CREATE_TAB; - return; } while(0); @@ -14387,15 +14396,15 @@ } void -Dbdict::execCREATE_OBJ_REF(Signal* signal){ - jamEntry(); - +Dbdict::execCREATE_OBJ_REF(Signal* signal) +{ CreateObjRef * const ref = (CreateObjRef*)signal->getDataPtr(); - Ptr trans_ptr; + + jamEntry(); ndbrequire(c_Trans.find(trans_ptr, ref->senderData)); - if(ref->errorCode != CreateObjRef::NF_FakeErrorREF){ + jam(); trans_ptr.p->setErrorCode(ref->errorCode); } Uint32 node = refToNode(ref->senderRef); @@ -14403,12 +14412,12 @@ } void -Dbdict::execCREATE_OBJ_CONF(Signal* signal){ - jamEntry(); - - CreateObjConf * const conf = (CreateObjConf*)signal->getDataPtr(); - +Dbdict::execCREATE_OBJ_CONF(Signal* signal) +{ Ptr trans_ptr; + CreateObjConf * const conf = (CreateObjConf*)signal->getDataPtr(); + + jamEntry(); ndbrequire(c_Trans.find(trans_ptr, conf->senderData)); schemaOp_reply(signal, trans_ptr.p, refToNode(conf->senderRef)); } @@ -14418,6 +14427,7 @@ SchemaTransaction * trans_ptr_p, Uint32 nodeId) { + jam(); { SafeCounter tmp(c_counterMgr, trans_ptr_p->m_counter); if(!tmp.clearWaitingFor(nodeId)){ @@ -14428,10 +14438,8 @@ switch(trans_ptr_p->m_op.m_state){ case DictObjOp::Preparing:{ - if(trans_ptr_p->m_errorCode != 0) { - jam(); /** * Failed to prepare on atleast one node -> abort on all */ @@ -14441,10 +14449,16 @@ safe_cast(&Dbdict::trans_abort_start_done); if(f_dict_op[trans_ptr_p->m_op.m_vt_index].m_trans_abort_start) + { + jam(); (this->*f_dict_op[trans_ptr_p->m_op.m_vt_index].m_trans_abort_start) (signal, trans_ptr_p); + } else + { + jam(); execute(signal, trans_ptr_p->m_callback, 0); + } return; } @@ -14454,14 +14468,19 @@ safe_cast(&Dbdict::trans_commit_start_done); if(f_dict_op[trans_ptr_p->m_op.m_vt_index].m_trans_commit_start) + { + jam(); (this->*f_dict_op[trans_ptr_p->m_op.m_vt_index].m_trans_commit_start) (signal, trans_ptr_p); + } else + { + jam(); execute(signal, trans_ptr_p->m_callback, 0); + } return; } case DictObjOp::Committing: { - jam(); ndbrequire(trans_ptr_p->m_errorCode == 0); trans_ptr_p->m_op.m_state = DictObjOp::Committed; @@ -14470,31 +14489,42 @@ safe_cast(&Dbdict::trans_commit_complete_done); if(f_dict_op[trans_ptr_p->m_op.m_vt_index].m_trans_commit_complete) + { + jam(); (this->*f_dict_op[trans_ptr_p->m_op.m_vt_index].m_trans_commit_complete) (signal, trans_ptr_p); + } else - execute(signal, trans_ptr_p->m_callback, 0); + { + jam(); + execute(signal, trans_ptr_p->m_callback, 0); + } return; } case DictObjOp::Aborting:{ - jam(); - trans_ptr_p->m_op.m_state = DictObjOp::Committed; trans_ptr_p->m_callback.m_callbackData = trans_ptr_p->key; trans_ptr_p->m_callback.m_callbackFunction= safe_cast(&Dbdict::trans_abort_complete_done); if(f_dict_op[trans_ptr_p->m_op.m_vt_index].m_trans_abort_complete) + { + jam(); (this->*f_dict_op[trans_ptr_p->m_op.m_vt_index].m_trans_abort_complete) (signal, trans_ptr_p); + } else - execute(signal, trans_ptr_p->m_callback, 0); + { + jam(); + execute(signal, trans_ptr_p->m_callback, 0); + } return; } case DictObjOp::Defined: case DictObjOp::Prepared: case DictObjOp::Committed: case DictObjOp::Aborted: + jam(); break; } ndbrequire(false); @@ -14503,14 +14533,13 @@ void Dbdict::trans_commit_start_done(Signal* signal, Uint32 callbackData, - Uint32 retValue){ - jamEntry(); - - ndbrequire(retValue == 0); - + Uint32 retValue) +{ Ptr trans_ptr; + + jam(); + ndbrequire(retValue == 0); ndbrequire(c_Trans.find(trans_ptr, callbackData)); - NodeReceiverGroup rg(DBDICT, trans_ptr.p->m_nodes); SafeCounter tmp(c_counterMgr, trans_ptr.p->m_counter); tmp.init(rg, GSN_DICT_COMMIT_REF, trans_ptr.p->key); @@ -14521,27 +14550,26 @@ req->op_key = trans_ptr.p->m_op.m_key; sendSignal(rg, GSN_DICT_COMMIT_REQ, signal, DictCommitReq::SignalLength, JBB); - trans_ptr.p->m_op.m_state = DictObjOp::Committing; } void Dbdict::trans_commit_complete_done(Signal* signal, Uint32 callbackData, - Uint32 retValue){ - jamEntry(); - - ndbrequire(retValue == 0); - + Uint32 retValue) +{ Ptr trans_ptr; + + jam(); + ndbrequire(retValue == 0); ndbrequire(c_Trans.find(trans_ptr, callbackData)); switch(f_dict_op[trans_ptr.p->m_op.m_vt_index].m_gsn_user_req){ case GSN_CREATE_FILEGROUP_REQ:{ FilegroupPtr fg_ptr; + jam(); ndbrequire(c_filegroup_hash.find(fg_ptr, trans_ptr.p->m_op.m_obj_id)); - // CreateFilegroupConf * conf = (CreateFilegroupConf*)signal->getDataPtr(); conf->senderRef = reference(); conf->senderData = trans_ptr.p->m_senderData; @@ -14551,11 +14579,11 @@ //@todo check api failed sendSignal(trans_ptr.p->m_senderRef, GSN_CREATE_FILEGROUP_CONF, signal, CreateFilegroupConf::SignalLength, JBB); - break; } case GSN_CREATE_FILE_REQ:{ FilePtr f_ptr; + jam(); ndbrequire(c_file_hash.find(f_ptr, trans_ptr.p->m_op.m_obj_id)); CreateFileConf * conf = (CreateFileConf*)signal->getDataPtr(); conf->senderRef = reference(); @@ -14566,11 +14594,11 @@ //@todo check api failed sendSignal(trans_ptr.p->m_senderRef, GSN_CREATE_FILE_CONF, signal, CreateFileConf::SignalLength, JBB); - break; } case GSN_DROP_FILE_REQ:{ DropFileConf * conf = (DropFileConf*)signal->getDataPtr(); + jam(); conf->senderRef = reference(); conf->senderData = trans_ptr.p->m_senderData; conf->fileId = trans_ptr.p->m_op.m_obj_id; @@ -14582,6 +14610,7 @@ } case GSN_DROP_FILEGROUP_REQ:{ DropFilegroupConf * conf = (DropFilegroupConf*)signal->getDataPtr(); + jam(); conf->senderRef = reference(); conf->senderData = trans_ptr.p->m_senderData; conf->filegroupId = trans_ptr.p->m_op.m_obj_id; @@ -14604,12 +14633,12 @@ void Dbdict::trans_abort_start_done(Signal* signal, Uint32 callbackData, - Uint32 retValue){ - jamEntry(); - - ndbrequire(retValue == 0); - + Uint32 retValue) +{ Ptr trans_ptr; + + jam(); + ndbrequire(retValue == 0); ndbrequire(c_Trans.find(trans_ptr, callbackData)); NodeReceiverGroup rg(DBDICT, trans_ptr.p->m_nodes); @@ -14627,12 +14656,12 @@ void Dbdict::trans_abort_complete_done(Signal* signal, Uint32 callbackData, - Uint32 retValue){ - jamEntry(); - - ndbrequire(retValue == 0); - + Uint32 retValue) +{ Ptr trans_ptr; + + jam(); + ndbrequire(retValue == 0); ndbrequire(c_Trans.find(trans_ptr, callbackData)); switch(f_dict_op[trans_ptr.p->m_op.m_vt_index].m_gsn_user_req){ @@ -14640,6 +14669,7 @@ { // CreateFilegroupRef * ref = (CreateFilegroupRef*)signal->getDataPtr(); + jam(); ref->senderRef = reference(); ref->senderData = trans_ptr.p->m_senderData; ref->masterNodeId = c_masterNodeId; @@ -14651,12 +14681,12 @@ //@todo check api failed sendSignal(trans_ptr.p->m_senderRef, GSN_CREATE_FILEGROUP_REF, signal, CreateFilegroupRef::SignalLength, JBB); - break; } case GSN_CREATE_FILE_REQ: { CreateFileRef * ref = (CreateFileRef*)signal->getDataPtr(); + jam(); ref->senderRef = reference(); ref->senderData = trans_ptr.p->m_senderData; ref->masterNodeId = c_masterNodeId; @@ -14668,12 +14698,12 @@ //@todo check api failed sendSignal(trans_ptr.p->m_senderRef, GSN_CREATE_FILE_REF, signal, CreateFileRef::SignalLength, JBB); - break; } case GSN_DROP_FILE_REQ: { DropFileRef * ref = (DropFileRef*)signal->getDataPtr(); + jam(); ref->senderRef = reference(); ref->senderData = trans_ptr.p->m_senderData; ref->masterNodeId = c_masterNodeId; @@ -14684,13 +14714,13 @@ //@todo check api failed sendSignal(trans_ptr.p->m_senderRef, GSN_DROP_FILE_REF, signal, DropFileRef::SignalLength, JBB); - break; } case GSN_DROP_FILEGROUP_REQ: { // DropFilegroupRef * ref = (DropFilegroupRef*)signal->getDataPtr(); + jam(); ref->senderRef = reference(); ref->senderData = trans_ptr.p->m_senderData; ref->masterNodeId = c_masterNodeId; @@ -14701,7 +14731,6 @@ //@todo check api failed sendSignal(trans_ptr.p->m_senderRef, GSN_DROP_FILEGROUP_REF, signal, DropFilegroupRef::SignalLength, JBB); - break; } default: @@ -14715,7 +14744,8 @@ } void -Dbdict::execCREATE_OBJ_REQ(Signal* signal){ +Dbdict::execCREATE_OBJ_REQ(Signal* signal) +{ jamEntry(); if(!assembleFragments(signal)){ @@ -14760,6 +14790,7 @@ switch(objType){ case DictTabInfo::Tablespace: case DictTabInfo::LogfileGroup: + jam(); createObjPtr.p->m_vt_index = 0; break; case DictTabInfo::Datafile: @@ -14768,7 +14799,11 @@ * Use restart code to impl. ForceCreateFile */ if (requestInfo & CreateFileReq::ForceCreateFile) - createObjPtr.p->m_restart= 2; + { + jam(); + createObjPtr.p->m_restart= 2; + } + jam(); createObjPtr.p->m_vt_index = 1; break; default: @@ -14784,10 +14819,10 @@ Dbdict::execDICT_COMMIT_REQ(Signal* signal) { DictCommitReq* req = (DictCommitReq*)signal->getDataPtr(); - Ptr op; - ndbrequire(c_schemaOp.find(op, req->op_key)); + jamEntry(); + ndbrequire(c_schemaOp.find(op, req->op_key)); (this->*f_dict_op[op.p->m_vt_index].m_commit)(signal, op.p); } @@ -14795,23 +14830,23 @@ Dbdict::execDICT_ABORT_REQ(Signal* signal) { DictAbortReq* req = (DictAbortReq*)signal->getDataPtr(); - Ptr op; - ndbrequire(c_schemaOp.find(op, req->op_key)); + jamEntry(); + ndbrequire(c_schemaOp.find(op, req->op_key)); (this->*f_dict_op[op.p->m_vt_index].m_abort)(signal, op.p); } void -Dbdict::execDICT_COMMIT_REF(Signal* signal){ - jamEntry(); - +Dbdict::execDICT_COMMIT_REF(Signal* signal) +{ DictCommitRef * const ref = (DictCommitRef*)signal->getDataPtr(); - Ptr trans_ptr; + + jamEntry(); ndbrequire(c_Trans.find(trans_ptr, ref->senderData)); - if(ref->errorCode != DictCommitRef::NF_FakeErrorREF){ + jam(); trans_ptr.p->setErrorCode(ref->errorCode); } Uint32 node = refToNode(ref->senderRef); @@ -14819,26 +14854,26 @@ } void -Dbdict::execDICT_COMMIT_CONF(Signal* signal){ - jamEntry(); - - DictCommitConf * const conf = (DictCommitConf*)signal->getDataPtr(); - +Dbdict::execDICT_COMMIT_CONF(Signal* signal) +{ Ptr trans_ptr; + DictCommitConf * const conf = (DictCommitConf*)signal->getDataPtr(); + + jamEntry(); ndbrequire(c_Trans.find(trans_ptr, conf->senderData)); schemaOp_reply(signal, trans_ptr.p, refToNode(conf->senderRef)); } void -Dbdict::execDICT_ABORT_REF(Signal* signal){ - jamEntry(); - +Dbdict::execDICT_ABORT_REF(Signal* signal) +{ DictAbortRef * const ref = (DictAbortRef*)signal->getDataPtr(); - Ptr trans_ptr; + + jamEntry(); ndbrequire(c_Trans.find(trans_ptr, ref->senderData)); - if(ref->errorCode != DictAbortRef::NF_FakeErrorREF){ + jam(); trans_ptr.p->setErrorCode(ref->errorCode); } Uint32 node = refToNode(ref->senderRef); @@ -14846,31 +14881,28 @@ } void -Dbdict::execDICT_ABORT_CONF(Signal* signal){ - jamEntry(); - +Dbdict::execDICT_ABORT_CONF(Signal* signal) +{ DictAbortConf * const conf = (DictAbortConf*)signal->getDataPtr(); - Ptr trans_ptr; + + jamEntry(); ndbrequire(c_Trans.find(trans_ptr, conf->senderData)); schemaOp_reply(signal, trans_ptr.p, refToNode(conf->senderRef)); } - - void Dbdict::createObj_prepare_start_done(Signal* signal, Uint32 callbackData, - Uint32 returnCode){ + Uint32 returnCode) +{ + CreateObjRecordPtr createObjPtr; + SegmentedSectionPtr objInfoPtr; ndbrequire(returnCode == 0); - - CreateObjRecordPtr createObjPtr; ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); - - SegmentedSectionPtr objInfoPtr; + jam(); getSection(objInfoPtr, createObjPtr.p->m_obj_info_ptr_i); - if(createObjPtr.p->m_errorCode != 0){ jam(); createObjPtr.p->m_obj_info_ptr_i= RNIL; @@ -14898,19 +14930,19 @@ void Dbdict::createObj_writeSchemaConf1(Signal* signal, Uint32 callbackData, - Uint32 returnCode){ - jam(); + Uint32 returnCode) +{ + CreateObjRecordPtr createObjPtr; + Callback callback; + SegmentedSectionPtr objInfoPtr; + jam(); ndbrequire(returnCode == 0); - - CreateObjRecordPtr createObjPtr; ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); - Callback callback; callback.m_callbackData = createObjPtr.p->key; callback.m_callbackFunction = safe_cast(&Dbdict::createObj_writeObjConf); - SegmentedSectionPtr objInfoPtr; getSection(objInfoPtr, createObjPtr.p->m_obj_info_ptr_i); writeTableFile(signal, createObjPtr.p->m_obj_id, objInfoPtr, &callback); @@ -14922,14 +14954,13 @@ void Dbdict::createObj_writeObjConf(Signal* signal, Uint32 callbackData, - Uint32 returnCode){ - jam(); + Uint32 returnCode) +{ + CreateObjRecordPtr createObjPtr; + jam(); ndbrequire(returnCode == 0); - - CreateObjRecordPtr createObjPtr; ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); - createObjPtr.p->m_callback.m_callbackFunction = safe_cast(&Dbdict::createObj_prepare_complete_done); (this->*f_dict_op[createObjPtr.p->m_vt_index].m_prepare_complete) @@ -14939,12 +14970,12 @@ void Dbdict::createObj_prepare_complete_done(Signal* signal, Uint32 callbackData, - Uint32 returnCode){ + Uint32 returnCode) +{ + CreateObjRecordPtr createObjPtr; + jam(); - ndbrequire(returnCode == 0); - - CreateObjRecordPtr createObjPtr; ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); //@todo check for master failed @@ -14973,28 +15004,33 @@ } void -Dbdict::createObj_commit(Signal * signal, SchemaOp * op){ - jam(); - +Dbdict::createObj_commit(Signal * signal, SchemaOp * op) +{ OpCreateObj * createObj = (OpCreateObj*)op; + createObj->m_callback.m_callbackFunction = safe_cast(&Dbdict::createObj_commit_start_done); if (f_dict_op[createObj->m_vt_index].m_commit_start) + { + jam(); (this->*f_dict_op[createObj->m_vt_index].m_commit_start)(signal, createObj); + } else + { + jam(); execute(signal, createObj->m_callback, 0); + } } void Dbdict::createObj_commit_start_done(Signal* signal, Uint32 callbackData, - Uint32 returnCode){ + Uint32 returnCode) +{ + CreateObjRecordPtr createObjPtr; jam(); - ndbrequire(returnCode == 0); - - CreateObjRecordPtr createObjPtr; ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); Uint32 objId = createObjPtr.p->m_obj_id; @@ -15014,29 +15050,35 @@ void Dbdict::createObj_writeSchemaConf2(Signal* signal, Uint32 callbackData, - Uint32 returnCode){ - jam(); - - CreateObjRecordPtr createObjPtr; - ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); + Uint32 returnCode) +{ + CreateObjRecordPtr createObjPtr; + ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); createObjPtr.p->m_callback.m_callbackFunction = safe_cast(&Dbdict::createObj_commit_complete_done); if (f_dict_op[createObjPtr.p->m_vt_index].m_commit_complete) + { + jam(); (this->*f_dict_op[createObjPtr.p->m_vt_index].m_commit_complete) (signal, createObjPtr.p); + } else + { + jam(); execute(signal, createObjPtr.p->m_callback, 0); + } } void Dbdict::createObj_commit_complete_done(Signal* signal, Uint32 callbackData, - Uint32 returnCode){ + Uint32 returnCode) +{ + CreateObjRecordPtr createObjPtr; + jam(); - - CreateObjRecordPtr createObjPtr; ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); //@todo check error @@ -15054,27 +15096,31 @@ void Dbdict::createObj_abort(Signal* signal, SchemaOp* op) { - jam(); - OpCreateObj * createObj = (OpCreateObj*)op; createObj->m_callback.m_callbackFunction = safe_cast(&Dbdict::createObj_abort_start_done); if (f_dict_op[createObj->m_vt_index].m_abort_start) + { + jam(); (this->*f_dict_op[createObj->m_vt_index].m_abort_start)(signal, createObj); + } else + { + jam(); execute(signal, createObj->m_callback, 0); + } } void Dbdict::createObj_abort_start_done(Signal* signal, Uint32 callbackData, - Uint32 returnCode){ + Uint32 returnCode) +{ + CreateObjRecordPtr createObjPtr; + jam(); - - CreateObjRecordPtr createObjPtr; ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); - XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0]; SchemaFile::TableEntry objEntry = * getTableEntry(xsf, createObjPtr.p->m_obj_id); @@ -15093,19 +15139,23 @@ Uint32 callbackData, Uint32 returnCode) { - jam(); + CreateObjRecordPtr createObjPtr; - CreateObjRecordPtr createObjPtr; ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); - createObjPtr.p->m_callback.m_callbackFunction = safe_cast(&Dbdict::createObj_abort_complete_done); if (f_dict_op[createObjPtr.p->m_vt_index].m_abort_complete) + { + jam(); (this->*f_dict_op[createObjPtr.p->m_vt_index].m_abort_complete) (signal, createObjPtr.p); + } else + { + jam(); execute(signal, createObjPtr.p->m_callback, 0); + } } void @@ -15113,9 +15163,9 @@ Uint32 callbackData, Uint32 returnCode) { - jam(); + CreateObjRecordPtr createObjPtr; - CreateObjRecordPtr createObjPtr; + jam(); ndbrequire(c_opCreateObj.find(createObjPtr, callbackData)); DictAbortConf * const conf = (DictAbortConf*)signal->getDataPtr(); @@ -15128,7 +15178,8 @@ } void -Dbdict::execDROP_OBJ_REQ(Signal* signal){ +Dbdict::execDROP_OBJ_REQ(Signal* signal) +{ jamEntry(); if(!assembleFragments(signal)){ @@ -15167,8 +15218,9 @@ case DictTabInfo::Tablespace: case DictTabInfo::LogfileGroup: { - dropObjPtr.p->m_vt_index = 3; Ptr fg_ptr; + jam(); + dropObjPtr.p->m_vt_index = 3; ndbrequire(c_filegroup_hash.find(fg_ptr, objId)); dropObjPtr.p->m_obj_ptr_i = fg_ptr.i; break; @@ -15176,15 +15228,19 @@ } case DictTabInfo::Datafile: { - dropObjPtr.p->m_vt_index = 2; Ptr file_ptr; + jam(); + dropObjPtr.p->m_vt_index = 2; ndbrequire(c_file_hash.find(file_ptr, objId)); dropObjPtr.p->m_obj_ptr_i = file_ptr.i; break; } case DictTabInfo::Undofile: + { + jam(); dropObjPtr.p->m_vt_index = 4; return; + } default: ndbrequire(false); } @@ -15199,12 +15255,12 @@ Uint32 callbackData, Uint32 returnCode) { - ndbrequire(returnCode == 0); + DropObjRecordPtr dropObjPtr; + Callback cb; - DropObjRecordPtr dropObjPtr; + ndbrequire(returnCode == 0); ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); - Callback cb; cb.m_callbackData = callbackData; cb.m_callbackFunction = safe_cast(&Dbdict::dropObj_prepare_writeSchemaConf); @@ -15215,7 +15271,7 @@ dropObj_prepare_complete_done(signal, callbackData, 0); return; } - + jam(); Uint32 objId = dropObjPtr.p->m_obj_id; XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0]; SchemaFile::TableEntry objEntry = *getTableEntry(xsf, objId); @@ -15228,19 +15284,23 @@ Uint32 callbackData, Uint32 returnCode) { - ndbrequire(returnCode == 0); + DropObjRecordPtr dropObjPtr; - DropObjRecordPtr dropObjPtr; + ndbrequire(returnCode == 0); ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); - dropObjPtr.p->m_callback.m_callbackFunction = safe_cast(&Dbdict::dropObj_prepare_complete_done); - if(f_dict_op[dropObjPtr.p->m_vt_index].m_prepare_complete) + { + jam(); (this->*f_dict_op[dropObjPtr.p->m_vt_index].m_prepare_complete) (signal, dropObjPtr.p); + } else + { + jam(); execute(signal, dropObjPtr.p->m_callback, 0); + } } void @@ -15248,10 +15308,11 @@ Uint32 callbackData, Uint32 returnCode) { + DropObjRecordPtr dropObjPtr; + ndbrequire(returnCode == 0); - - DropObjRecordPtr dropObjPtr; ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); + jam(); //@todo check for master failed @@ -15277,16 +15338,22 @@ } void -Dbdict::dropObj_commit(Signal * signal, SchemaOp * op){ - jam(); - +Dbdict::dropObj_commit(Signal * signal, SchemaOp * op) +{ OpDropObj * dropObj = (OpDropObj*)op; + dropObj->m_callback.m_callbackFunction = safe_cast(&Dbdict::dropObj_commit_start_done); if (f_dict_op[dropObj->m_vt_index].m_commit_start) + { + jam(); (this->*f_dict_op[dropObj->m_vt_index].m_commit_start)(signal, dropObj); + } else + { + jam(); execute(signal, dropObj->m_callback, 0); + } } void @@ -15294,10 +15361,10 @@ Uint32 callbackData, Uint32 returnCode) { + DropObjRecordPtr dropObjPtr; + jam(); ndbrequire(returnCode == 0); - - DropObjRecordPtr dropObjPtr; ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); Uint32 objId = dropObjPtr.p->m_obj_id; @@ -15318,20 +15385,25 @@ Uint32 callbackData, Uint32 returnCode) { + DropObjRecordPtr dropObjPtr; + jam(); ndbrequire(returnCode == 0); - - DropObjRecordPtr dropObjPtr; ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); - dropObjPtr.p->m_callback.m_callbackFunction = safe_cast(&Dbdict::dropObj_commit_complete_done); if(f_dict_op[dropObjPtr.p->m_vt_index].m_commit_complete) + { + jam(); (this->*f_dict_op[dropObjPtr.p->m_vt_index].m_commit_complete) (signal, dropObjPtr.p); + } else + { + jam(); execute(signal, dropObjPtr.p->m_callback, 0); + } } void @@ -15339,7 +15411,9 @@ Uint32 callbackData, Uint32 returnCode) { - DropObjRecordPtr dropObjPtr; + DropObjRecordPtr dropObjPtr; + + jam(); ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); //@todo check error @@ -15350,22 +15424,26 @@ conf->senderData = dropObjPtr.p->m_senderData; sendSignal(dropObjPtr.p->m_senderRef, GSN_DICT_COMMIT_CONF, signal, DictCommitConf::SignalLength, JBB); - c_opDropObj.release(dropObjPtr); } void -Dbdict::dropObj_abort(Signal * signal, SchemaOp * op){ - jam(); - +Dbdict::dropObj_abort(Signal * signal, SchemaOp * op) +{ OpDropObj * dropObj = (OpDropObj*)op; + dropObj->m_callback.m_callbackFunction = safe_cast(&Dbdict::dropObj_abort_start_done); - if (f_dict_op[dropObj->m_vt_index].m_abort_start) + { + jam(); (this->*f_dict_op[dropObj->m_vt_index].m_abort_start)(signal, dropObj); + } else + { + jam(); execute(signal, dropObj->m_callback, 0); + } } void @@ -15373,10 +15451,10 @@ Uint32 callbackData, Uint32 returnCode) { + DropObjRecordPtr dropObjPtr; + jam(); ndbrequire(returnCode == 0); - - DropObjRecordPtr dropObjPtr; ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0]; @@ -15397,6 +15475,7 @@ } else { + jam(); execute(signal, callback, 0); } } @@ -15406,20 +15485,24 @@ Uint32 callbackData, Uint32 returnCode) { - jam(); + DropObjRecordPtr dropObjPtr; + ndbrequire(returnCode == 0); - - DropObjRecordPtr dropObjPtr; ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); - dropObjPtr.p->m_callback.m_callbackFunction = safe_cast(&Dbdict::dropObj_abort_complete_done); if(f_dict_op[dropObjPtr.p->m_vt_index].m_abort_complete) + { + jam(); (this->*f_dict_op[dropObjPtr.p->m_vt_index].m_abort_complete) (signal, dropObjPtr.p); + } else + { + jam(); execute(signal, dropObjPtr.p->m_callback, 0); + } } void @@ -15427,24 +15510,26 @@ Uint32 callbackData, Uint32 returnCode) { - DropObjRecordPtr dropObjPtr; - ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); - + DropObjRecordPtr dropObjPtr; DictAbortConf * const conf = (DictAbortConf*)signal->getDataPtr(); + + ndbrequire(c_opDropObj.find(dropObjPtr, callbackData)); + jam(); conf->senderRef = reference(); conf->senderData = dropObjPtr.p->m_senderData; sendSignal(dropObjPtr.p->m_senderRef, GSN_DICT_ABORT_CONF, signal, DictAbortConf::SignalLength, JBB); - c_opDropObj.release(dropObjPtr); } void -Dbdict::create_fg_prepare_start(Signal* signal, SchemaOp* op){ +Dbdict::create_fg_prepare_start(Signal* signal, SchemaOp* op) +{ /** * Put data into table record */ SegmentedSectionPtr objInfoPtr; + jam(); getSection(objInfoPtr, ((OpCreateObj*)op)->m_obj_info_ptr_i); SimplePropertiesSectionReader it(objInfoPtr, getSectionSegmentPool()); @@ -15461,6 +15546,7 @@ if(status != SimpleProperties::Eof) { + jam(); op->m_errorCode = CreateTableRef::InvalidFormat; break; } @@ -15469,6 +15555,7 @@ { if(!fg.TS_ExtentSize) { + jam(); op->m_errorCode = CreateFilegroupRef::InvalidExtentSize; break; } @@ -15477,6 +15564,7 @@ { if(!fg.LF_UndoBufferSize) { + jam(); op->m_errorCode = CreateFilegroupRef::InvalidUndoBufferSize; break; } @@ -15485,16 +15573,19 @@ Uint32 len = strlen(fg.FilegroupName) + 1; Uint32 hash = Rope::hash(fg.FilegroupName, len); if(get_object(fg.FilegroupName, len, hash) != 0){ + jam(); op->m_errorCode = CreateTableRef::TableAlreadyExist; break; } if(!c_obj_pool.seize(obj_ptr)){ + jam(); op->m_errorCode = CreateTableRef::NoMoreTableRecords; break; } if(!c_filegroup_pool.seize(fg_ptr)){ + jam(); op->m_errorCode = CreateTableRef::NoMoreTableRecords; break; } @@ -15504,6 +15595,7 @@ { Rope name(c_rope_pool, obj_ptr.p->m_name); if(!name.assign(fg.FilegroupName, len, hash)){ + jam(); op->m_errorCode = CreateTableRef::OutOfStringBuffer; break; } @@ -15517,6 +15609,7 @@ switch(fg.FilegroupType){ case DictTabInfo::Tablespace: + { //fg.TS_DataGrow = group.m_grow_spec; fg_ptr.p->m_tablespace.m_extent_size = fg.TS_ExtentSize; fg_ptr.p->m_tablespace.m_default_logfile_group_id = fg.TS_LogfileGroupId; @@ -15524,22 +15617,28 @@ Ptr lg_ptr; if (!c_filegroup_hash.find(lg_ptr, fg.TS_LogfileGroupId)) { + jam(); op->m_errorCode = CreateFilegroupRef::NoSuchLogfileGroup; goto error; } if (lg_ptr.p->m_version != fg.TS_LogfileGroupVersion) { + jam(); op->m_errorCode = CreateFilegroupRef::InvalidFilegroupVersion; goto error; } increase_ref_count(lg_ptr.p->m_obj_ptr_i); break; + } case DictTabInfo::LogfileGroup: + { + jam(); fg_ptr.p->m_logfilegroup.m_undo_buffer_size = fg.LF_UndoBufferSize; fg_ptr.p->m_logfilegroup.m_files.init(); //fg.LF_UndoGrow = ; break; + } default: ndbrequire(false); } @@ -15574,13 +15673,14 @@ } void -Dbdict::create_fg_prepare_complete(Signal* signal, SchemaOp* op){ +Dbdict::create_fg_prepare_complete(Signal* signal, SchemaOp* op) +{ /** * CONTACT TSMAN LGMAN PGMAN */ CreateFilegroupImplReq* req = (CreateFilegroupImplReq*)signal->getDataPtrSend(); - + jam(); req->senderData = op->key; req->senderRef = reference(); req->filegroup_id = op->m_obj_id; @@ -15593,53 +15693,57 @@ Uint32 len= 0; switch(op->m_obj_type){ case DictTabInfo::Tablespace: + { + jam(); ref = TSMAN_REF; len = CreateFilegroupImplReq::TablespaceLength; req->tablespace.extent_size = fg_ptr.p->m_tablespace.m_extent_size; req->tablespace.logfile_group_id = fg_ptr.p->m_tablespace.m_default_logfile_group_id; break; + } case DictTabInfo::LogfileGroup: + { + jam(); ref = LGMAN_REF; len = CreateFilegroupImplReq::LogfileGroupLength; req->logfile_group.buffer_size = fg_ptr.p->m_logfilegroup.m_undo_buffer_size; break; + } default: ndbrequire(false); } - sendSignal(ref, GSN_CREATE_FILEGROUP_REQ, signal, len, JBB); } void -Dbdict::execCREATE_FILEGROUP_REF(Signal* signal){ - jamEntry(); - +Dbdict::execCREATE_FILEGROUP_REF(Signal* signal) +{ CreateFilegroupImplRef * ref = (CreateFilegroupImplRef*)signal->getDataPtr(); - CreateObjRecordPtr op_ptr; + + jamEntry(); ndbrequire(c_opCreateObj.find(op_ptr, ref->senderData)); op_ptr.p->m_errorCode = ref->errorCode; - execute(signal, op_ptr.p->m_callback, 0); } void -Dbdict::execCREATE_FILEGROUP_CONF(Signal* signal){ - jamEntry(); - +Dbdict::execCREATE_FILEGROUP_CONF(Signal* signal) +{ CreateFilegroupImplConf * rep = (CreateFilegroupImplConf*)signal->getDataPtr(); - CreateObjRecordPtr op_ptr; + + jamEntry(); ndbrequire(c_opCreateObj.find(op_ptr, rep->senderData)); - execute(signal, op_ptr.p->m_callback, 0); } void -Dbdict::create_fg_abort_start(Signal* signal, SchemaOp* op){ +Dbdict::create_fg_abort_start(Signal* signal, SchemaOp* op) +{ CreateFilegroupImplReq* req = (CreateFilegroupImplReq*)signal->getDataPtrSend(); @@ -15649,13 +15753,13 @@ send_drop_fg(signal, op, DropFilegroupImplReq::Commit); return; } - + jam(); execute(signal, op->m_callback, 0); } void -Dbdict::create_fg_abort_complete(Signal* signal, SchemaOp* op){ - +Dbdict::create_fg_abort_complete(Signal* signal, SchemaOp* op) +{ if (op->m_obj_ptr_i != RNIL) { jam(); @@ -15665,12 +15769,13 @@ release_object(fg_ptr.p->m_obj_ptr_i); c_filegroup_hash.release(fg_ptr); } - + jam(); execute(signal, op->m_callback, 0); } void -Dbdict::create_file_prepare_start(Signal* signal, SchemaOp* op){ +Dbdict::create_file_prepare_start(Signal* signal, SchemaOp* op) +{ /** * Put data into table record */ @@ -15690,6 +15795,7 @@ do { if(status != SimpleProperties::Eof){ + jam(); op->m_errorCode = CreateFileRef::InvalidFormat; break; } @@ -15697,34 +15803,53 @@ // Get Filegroup FilegroupPtr fg_ptr; if(!c_filegroup_hash.find(fg_ptr, f.FilegroupId)){ + jam(); op->m_errorCode = CreateFileRef::NoSuchFilegroup; break; } if(fg_ptr.p->m_version != f.FilegroupVersion){ + jam(); op->m_errorCode = CreateFileRef::InvalidFilegroupVersion; break; } switch(f.FileType){ case DictTabInfo::Datafile: + { if(fg_ptr.p->m_type != DictTabInfo::Tablespace) + { + jam(); op->m_errorCode = CreateFileRef::InvalidFileType; + } + jam(); break; + } case DictTabInfo::Undofile: + { if(fg_ptr.p->m_type != DictTabInfo::LogfileGroup) + { + jam(); op->m_errorCode = CreateFileRef::InvalidFileType; + } + jam(); break; + } default: + jam(); op->m_errorCode = CreateFileRef::InvalidFileType; } if(op->m_errorCode) + { + jam(); break; + } Uint32 len = strlen(f.FileName) + 1; Uint32 hash = Rope::hash(f.FileName, len); if(get_object(f.FileName, len, hash) != 0){ + jam(); op->m_errorCode = CreateFileRef::FilenameAlreadyExists; break; } @@ -15735,6 +15860,7 @@ m_ctx.m_config.getOwnConfigIterator(); if(!ndb_mgm_get_int_parameter(p, CFG_DB_DISCLESS, &dl) && dl) { + jam(); op->m_errorCode = CreateFileRef::NotSupportedWhenDiskless; break; } @@ -15742,11 +15868,13 @@ // Loop through all filenames... if(!c_obj_pool.seize(obj_ptr)){ + jam(); op->m_errorCode = CreateTableRef::NoMoreTableRecords; break; } if (! c_file_pool.seize(filePtr)){ + jam(); op->m_errorCode = CreateFileRef::OutOfFileRecords; break; } @@ -15756,6 +15884,7 @@ { Rope name(c_rope_pool, obj_ptr.p->m_name); if(!name.assign(f.FileName, len, hash)){ + jam(); op->m_errorCode = CreateTableRef::OutOfStringBuffer; break; } @@ -15763,10 +15892,14 @@ switch(fg_ptr.p->m_type){ case DictTabInfo::Tablespace: + { + jam(); increase_ref_count(fg_ptr.p->m_obj_ptr_i); break; + } case DictTabInfo::LogfileGroup: { + jam(); Local_file_list list(c_file_pool, fg_ptr.p->m_logfilegroup.m_files); list.add(filePtr); break; @@ -15810,37 +15943,46 @@ c_obj_pool.release(obj_ptr); } } - execute(signal, op->m_callback, 0); } void -Dbdict::create_file_prepare_complete(Signal* signal, SchemaOp* op){ +Dbdict::create_file_prepare_complete(Signal* signal, SchemaOp* op) +{ /** * CONTACT TSMAN LGMAN PGMAN */ CreateFileImplReq* req = (CreateFileImplReq*)signal->getDataPtrSend(); - FilePtr f_ptr; - c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); - FilegroupPtr fg_ptr; + + jam(); + c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); ndbrequire(c_filegroup_hash.find(fg_ptr, f_ptr.p->m_filegroup_id)); req->senderData = op->key; req->senderRef = reference(); switch(((OpCreateObj*)op)->m_restart){ case 0: + { + jam(); req->requestInfo = CreateFileImplReq::Create; break; + } case 1: + { + jam(); req->requestInfo = CreateFileImplReq::Open; break; + } case 2: + { + jam(); req->requestInfo = CreateFileImplReq::CreateForce; break; } + } req->file_id = f_ptr.p->key; req->filegroup_id = f_ptr.p->m_filegroup_id; @@ -15852,14 +15994,20 @@ Uint32 len= 0; switch(op->m_obj_type){ case DictTabInfo::Datafile: + { + jam(); ref = TSMAN_REF; len = CreateFileImplReq::DatafileLength; req->tablespace.extent_size = fg_ptr.p->m_tablespace.m_extent_size; break; + } case DictTabInfo::Undofile: + { + jam(); ref = LGMAN_REF; len = CreateFileImplReq::UndofileLength; break; + } default: ndbrequire(false); } @@ -15874,42 +16022,41 @@ } void -Dbdict::execCREATE_FILE_REF(Signal* signal){ - jamEntry(); - +Dbdict::execCREATE_FILE_REF(Signal* signal) +{ CreateFileImplRef * ref = (CreateFileImplRef*)signal->getDataPtr(); - CreateObjRecordPtr op_ptr; + + jamEntry(); ndbrequire(c_opCreateObj.find(op_ptr, ref->senderData)); op_ptr.p->m_errorCode = ref->errorCode; - execute(signal, op_ptr.p->m_callback, 0); } void -Dbdict::execCREATE_FILE_CONF(Signal* signal){ - jamEntry(); - +Dbdict::execCREATE_FILE_CONF(Signal* signal) +{ CreateFileImplConf * rep = (CreateFileImplConf*)signal->getDataPtr(); - CreateObjRecordPtr op_ptr; + + jamEntry(); ndbrequire(c_opCreateObj.find(op_ptr, rep->senderData)); - execute(signal, op_ptr.p->m_callback, 0); } void -Dbdict::create_file_commit_start(Signal* signal, SchemaOp* op){ +Dbdict::create_file_commit_start(Signal* signal, SchemaOp* op) +{ /** * CONTACT TSMAN LGMAN PGMAN */ CreateFileImplReq* req = (CreateFileImplReq*)signal->getDataPtrSend(); - FilePtr f_ptr; - c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); - FilegroupPtr fg_ptr; + + jam(); + c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); ndbrequire(c_filegroup_hash.find(fg_ptr, f_ptr.p->m_filegroup_id)); req->senderData = op->key; @@ -15923,15 +16070,20 @@ Uint32 ref= 0; switch(op->m_obj_type){ case DictTabInfo::Datafile: + { + jam(); ref = TSMAN_REF; break; + } case DictTabInfo::Undofile: + { + jam(); ref = LGMAN_REF; break; + } default: ndbrequire(false); } - sendSignal(ref, GSN_CREATE_FILE_REQ, signal, CreateFileImplReq::CommitLength, JBB); } @@ -15944,9 +16096,11 @@ if (op->m_obj_ptr_i != RNIL) { FilePtr f_ptr; + FilegroupPtr fg_ptr; + + jam(); c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); - FilegroupPtr fg_ptr; ndbrequire(c_filegroup_hash.find(fg_ptr, f_ptr.p->m_filegroup_id)); req->senderData = op->key; @@ -15960,20 +16114,24 @@ Uint32 ref= 0; switch(op->m_obj_type){ case DictTabInfo::Datafile: + { + jam(); ref = TSMAN_REF; break; + } case DictTabInfo::Undofile: + { + jam(); ref = LGMAN_REF; break; + } default: ndbrequire(false); } - sendSignal(ref, GSN_CREATE_FILE_REQ, signal, CreateFileImplReq::AbortLength, JBB); return; } - execute(signal, op->m_callback, 0); } @@ -15983,17 +16141,21 @@ if (op->m_obj_ptr_i != RNIL) { FilePtr f_ptr; - c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); - FilegroupPtr fg_ptr; + + jam(); + c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); ndbrequire(c_filegroup_hash.find(fg_ptr, f_ptr.p->m_filegroup_id)); - switch(fg_ptr.p->m_type){ case DictTabInfo::Tablespace: + { + jam(); decrease_ref_count(fg_ptr.p->m_obj_ptr_i); break; + } case DictTabInfo::LogfileGroup: { + jam(); Local_file_list list(c_file_pool, fg_ptr.p->m_logfilegroup.m_files); list.remove(f_ptr); break; @@ -16005,19 +16167,20 @@ release_object(f_ptr.p->m_obj_ptr_i); c_file_hash.release(f_ptr); } - execute(signal, op->m_callback, 0); } void Dbdict::drop_file_prepare_start(Signal* signal, SchemaOp* op) { + jam(); send_drop_file(signal, op, DropFileImplReq::Prepare); } void Dbdict::drop_undofile_prepare_start(Signal* signal, SchemaOp* op) { + jam(); op->m_errorCode = DropFileRef::DropUndoFileNotSupported; execute(signal, op->m_callback, 0); } @@ -16025,6 +16188,7 @@ void Dbdict::drop_file_commit_start(Signal* signal, SchemaOp* op) { + jam(); send_drop_file(signal, op, DropFileImplReq::Commit); } @@ -16032,21 +16196,21 @@ Dbdict::drop_file_commit_complete(Signal* signal, SchemaOp* op) { FilePtr f_ptr; - c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); - FilegroupPtr fg_ptr; - ndbrequire(c_filegroup_hash.find(fg_ptr, f_ptr.p->m_filegroup_id)); + jam(); + c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); + ndbrequire(c_filegroup_hash.find(fg_ptr, f_ptr.p->m_filegroup_id)); decrease_ref_count(fg_ptr.p->m_obj_ptr_i); release_object(f_ptr.p->m_obj_ptr_i); c_file_hash.release(f_ptr); - execute(signal, op->m_callback, 0); } void Dbdict::drop_file_abort_start(Signal* signal, SchemaOp* op) { + jam(); send_drop_file(signal, op, DropFileImplReq::Abort); } @@ -16055,11 +16219,11 @@ DropFileImplReq::RequestInfo type) { DropFileImplReq* req = (DropFileImplReq*)signal->getDataPtrSend(); - FilePtr f_ptr; - c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); - FilegroupPtr fg_ptr; + + jam(); + c_file_pool.getPtr(f_ptr, op->m_obj_ptr_i); ndbrequire(c_filegroup_hash.find(fg_ptr, f_ptr.p->m_filegroup_id)); req->senderData = op->key; @@ -16073,29 +16237,34 @@ Uint32 ref= 0; switch(op->m_obj_type){ case DictTabInfo::Datafile: + { + jam(); ref = TSMAN_REF; break; + } case DictTabInfo::Undofile: + { + jam(); ref = LGMAN_REF; break; + } default: ndbrequire(false); } - sendSignal(ref, GSN_DROP_FILE_REQ, signal, DropFileImplReq::SignalLength, JBB); } void -Dbdict::execDROP_OBJ_REF(Signal* signal){ - jamEntry(); - +Dbdict::execDROP_OBJ_REF(Signal* signal) +{ DropObjRef * const ref = (DropObjRef*)signal->getDataPtr(); - Ptr trans_ptr; + + jamEntry(); ndbrequire(c_Trans.find(trans_ptr, ref->senderData)); - if(ref->errorCode != DropObjRef::NF_FakeErrorREF){ + jam(); trans_ptr.p->setErrorCode(ref->errorCode); } Uint32 node = refToNode(ref->senderRef); @@ -16103,65 +16272,61 @@ } void -Dbdict::execDROP_OBJ_CONF(Signal* signal){ - jamEntry(); - +Dbdict::execDROP_OBJ_CONF(Signal* signal) +{ DropObjConf * const conf = (DropObjConf*)signal->getDataPtr(); - Ptr trans_ptr; + + jamEntry(); ndbrequire(c_Trans.find(trans_ptr, conf->senderData)); schemaOp_reply(signal, trans_ptr.p, refToNode(conf->senderRef)); } void -Dbdict::execDROP_FILE_REF(Signal* signal){ - jamEntry(); - +Dbdict::execDROP_FILE_REF(Signal* signal) +{ DropFileImplRef * ref = (DropFileImplRef*)signal->getDataPtr(); - DropObjRecordPtr op_ptr; + + jamEntry(); ndbrequire(c_opDropObj.find(op_ptr, ref->senderData)); op_ptr.p->m_errorCode = ref->errorCode; - execute(signal, op_ptr.p->m_callback, 0); } void -Dbdict::execDROP_FILE_CONF(Signal* signal){ - jamEntry(); - +Dbdict::execDROP_FILE_CONF(Signal* signal) +{ DropFileImplConf * rep = (DropFileImplConf*)signal->getDataPtr(); - DropObjRecordPtr op_ptr; + + jamEntry(); ndbrequire(c_opDropObj.find(op_ptr, rep->senderData)); - execute(signal, op_ptr.p->m_callback, 0); } void -Dbdict::execDROP_FILEGROUP_REF(Signal* signal){ - jamEntry(); - +Dbdict::execDROP_FILEGROUP_REF(Signal* signal) +{ DropFilegroupImplRef * ref = (DropFilegroupImplRef*)signal->getDataPtr(); - DropObjRecordPtr op_ptr; + + jamEntry(); ndbrequire(c_opDropObj.find(op_ptr, ref->senderData)); op_ptr.p->m_errorCode = ref->errorCode; - execute(signal, op_ptr.p->m_callback, 0); } void -Dbdict::execDROP_FILEGROUP_CONF(Signal* signal){ - jamEntry(); - +Dbdict::execDROP_FILEGROUP_CONF(Signal* signal) +{ DropFilegroupImplConf * rep = (DropFilegroupImplConf*)signal->getDataPtr(); - DropObjRecordPtr op_ptr; + + jamEntry(); ndbrequire(c_opDropObj.find(op_ptr, rep->senderData)); - execute(signal, op_ptr.p->m_callback, 0); } @@ -16174,11 +16339,13 @@ DictObject * obj = c_obj_pool.getPtr(fg_ptr.p->m_obj_ptr_i); if (obj->m_ref_count) { + jam(); op->m_errorCode = DropFilegroupRef::FilegroupInUse; execute(signal, op->m_callback, 0); } else { + jam(); send_drop_fg(signal, op, DropFilegroupImplReq::Prepare); } } @@ -16190,7 +16357,7 @@ c_filegroup_pool.getPtr(fg_ptr, op->m_obj_ptr_i); if (op->m_obj_type == DictTabInfo::LogfileGroup) { - + jam(); /** * Mark all undofiles as dropped */ @@ -16199,6 +16366,7 @@ XSchemaFile * xsf = &c_schemaFile[c_schemaRecord.schemaPage != 0]; for(list.first(filePtr); !filePtr.isNull(); list.next(filePtr)) { + jam(); Uint32 objId = filePtr.p->key; SchemaFile::TableEntry * tableEntry = getTableEntry(xsf, objId); tableEntry->m_tableState = SchemaFile::DROP_TABLE_COMMITTED; @@ -16211,13 +16379,14 @@ else if(op->m_obj_type == DictTabInfo::Tablespace) { FilegroupPtr lg_ptr; + jam(); ndbrequire(c_filegroup_hash. find(lg_ptr, fg_ptr.p->m_tablespace.m_default_logfile_group_id)); decrease_ref_count(lg_ptr.p->m_obj_ptr_i); } - + jam(); send_drop_fg(signal, op, DropFilegroupImplReq::Commit); } @@ -16226,16 +16395,17 @@ { FilegroupPtr fg_ptr; c_filegroup_pool.getPtr(fg_ptr, op->m_obj_ptr_i); - + + jam(); release_object(fg_ptr.p->m_obj_ptr_i); c_filegroup_hash.release(fg_ptr); - execute(signal, op->m_callback, 0); } void Dbdict::drop_fg_abort_start(Signal* signal, SchemaOp* op) { + jam(); send_drop_fg(signal, op, DropFilegroupImplReq::Abort); } @@ -16258,16 +16428,20 @@ Uint32 ref= 0; switch(op->m_obj_type){ case DictTabInfo::Tablespace: + { + jam(); ref = TSMAN_REF; break; + } case DictTabInfo::LogfileGroup: + { + jam(); ref = LGMAN_REF; break; + } default: ndbrequire(false); } - sendSignal(ref, GSN_DROP_FILEGROUP_REQ, signal, DropFilegroupImplReq::SignalLength, JBB); } - diff -Nur --exclude=RCS --exclude=CVS --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet mysql-5.1.12/storage/ndb/src/kernel/blocks/lgman.cpp clean_dolphin_dd_fixes/storage/ndb/src/kernel/blocks/lgman.cpp --- mysql-5.1.12/storage/ndb/src/kernel/blocks/lgman.cpp 2006-03-10 08:36:45 -05:00 +++ clean_dolphin_dd_fixes/storage/ndb/src/kernel/blocks/lgman.cpp 2006-09-22 14:56:55 -04:00 @@ -468,7 +468,8 @@ } void -Lgman::execCREATE_FILE_REQ(Signal* signal){ +Lgman::execCREATE_FILE_REQ(Signal* signal) +{ jamEntry(); CreateFileImplReq* req= (CreateFileImplReq*)signal->getDataPtr(); @@ -497,6 +498,7 @@ switch(requestInfo){ case CreateFileImplReq::Commit: { + jam(); ndbrequire(find_file_by_id(file_ptr, ptr.p->m_meta_files, req->file_id)); file_ptr.p->m_create.m_senderRef = req->senderRef; file_ptr.p->m_create.m_senderData = req->senderData; @@ -509,6 +511,7 @@ Uint32 senderData = req->senderData; if (find_file_by_id(file_ptr, ptr.p->m_meta_files, req->file_id)) { + jam(); file_ptr.p->m_create.m_senderRef = senderRef; file_ptr.p->m_create.m_senderData = senderData; create_file_abort(signal, ptr, file_ptr); @@ -516,11 +519,11 @@ else { CreateFileImplConf* conf= (CreateFileImplConf*)signal->getDataPtr(); + jam(); conf->senderData = senderData; conf->senderRef = reference(); sendSignal(senderRef, GSN_CREATE_FILE_CONF, signal, CreateFileImplConf::SignalLength, JBB); - return; } return; }