List:Commits« Previous MessageNext Message »
From:Jonas Oreland Date:December 8 2009 3:26pm
Subject:bzr commit into mysql-5.1-telco-6.3 branch (jonas:3188) Bug#49263
View as plain text  
#At file:///home/jonas/src/telco-6.3/ based on revid:jonas@stripped

 3188 Jonas Oreland	2009-12-08
      ndb - bug#49263 - reasonable error message when failing to recreate DD object during node/system restart

    modified:
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp
      storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp
=== modified file 'storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp'
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2009-10-27 10:10:08 +0000
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2009-12-08 15:26:29 +0000
@@ -3443,6 +3443,21 @@ Dbdict::restartCreateObj_getTabInfoConf(
 }
 
 void
+Dbdict::restartCreateObj_fail(CreateObjRecordPtr createObjPtr)
+{
+  jam();
+  char msg[128];
+  BaseString::snprintf(msg, sizeof(msg),
+                       "Failure to recreate object %u during restart, error %u."
+                       " Check configuration changes and instructions from"
+                       " \'perror --ndb %u\'"
+                       ,c_restartRecord.activeTable
+                       ,createObjPtr.p->m_errorCode
+                       ,createObjPtr.p->m_errorCode);
+  progError(__LINE__, NDBD_EXIT_INVALID_CONFIG, msg);
+}
+
+void
 Dbdict::restartCreateObj_readConf(Signal* signal,
 				  Uint32 callbackData, 
 				  Uint32 returnCode)
@@ -3451,6 +3466,8 @@ Dbdict::restartCreateObj_readConf(Signal
   ndbrequire(returnCode == 0);
   CreateObjRecordPtr createObjPtr;  
   ndbrequire(c_opCreateObj.find(createObjPtr, callbackData));
+  if (! (createObjPtr.p->m_errorCode == 0))
+    restartCreateObj_fail(createObjPtr);
   ndbrequire(createObjPtr.p->m_errorCode == 0);
 
   PageRecordPtr pageRecPtr;
@@ -3478,6 +3495,8 @@ Dbdict::restartCreateObj_prepare_start_d
   ndbrequire(returnCode == 0);
   CreateObjRecordPtr createObjPtr;  
   ndbrequire(c_opCreateObj.find(createObjPtr, callbackData));
+  if (! (createObjPtr.p->m_errorCode == 0))
+    restartCreateObj_fail(createObjPtr);
   ndbrequire(createObjPtr.p->m_errorCode == 0);
 
   Callback callback;
@@ -3499,6 +3518,8 @@ Dbdict::restartCreateObj_write_complete(
   ndbrequire(returnCode == 0);
   CreateObjRecordPtr createObjPtr;  
   ndbrequire(c_opCreateObj.find(createObjPtr, callbackData));
+  if (! (createObjPtr.p->m_errorCode == 0))
+    restartCreateObj_fail(createObjPtr);
   ndbrequire(createObjPtr.p->m_errorCode == 0);
   
   SectionHandle handle(this, createObjPtr.p->m_obj_info_ptr_i);
@@ -3524,6 +3545,8 @@ Dbdict::restartCreateObj_prepare_complet
   ndbrequire(returnCode == 0);
   CreateObjRecordPtr createObjPtr;  
   ndbrequire(c_opCreateObj.find(createObjPtr, callbackData));
+  if (! (createObjPtr.p->m_errorCode == 0))
+    restartCreateObj_fail(createObjPtr);
   ndbrequire(createObjPtr.p->m_errorCode == 0);
 
   createObjPtr.p->m_callback.m_callbackFunction = 
@@ -3545,6 +3568,8 @@ Dbdict::restartCreateObj_commit_start_do
   ndbrequire(returnCode == 0);
   CreateObjRecordPtr createObjPtr;  
   ndbrequire(c_opCreateObj.find(createObjPtr, callbackData));
+  if (! (createObjPtr.p->m_errorCode == 0))
+    restartCreateObj_fail(createObjPtr);
   ndbrequire(createObjPtr.p->m_errorCode == 0);
 
   createObjPtr.p->m_callback.m_callbackFunction = 
@@ -3567,6 +3592,8 @@ Dbdict::restartCreateObj_commit_complete
   ndbrequire(returnCode == 0);
   CreateObjRecordPtr createObjPtr;  
   ndbrequire(c_opCreateObj.find(createObjPtr, callbackData));
+  if (! (createObjPtr.p->m_errorCode == 0))
+    restartCreateObj_fail(createObjPtr);
   ndbrequire(createObjPtr.p->m_errorCode == 0);
   
   c_opCreateObj.release(createObjPtr);
@@ -3578,6 +3605,22 @@ Dbdict::restartCreateObj_commit_complete
 /**
  * Drop object during NR/SR
  */
+
+void
+Dbdict::restartDropObj_fail(DropObjRecordPtr dropObjPtr)
+{
+  jam();
+  char msg[128];
+  BaseString::snprintf(msg, sizeof(msg),
+                       "Failure to drop object %u during restart, error %u."
+                       " Check configuration changes and instructions from"
+                       " \'perror --ndb %u\'"
+                       ,c_restartRecord.activeTable
+                       ,dropObjPtr.p->m_errorCode
+                       ,dropObjPtr.p->m_errorCode);
+  progError(__LINE__, NDBD_EXIT_INVALID_CONFIG, msg);
+}
+
 void
 Dbdict::restartDropObj(Signal* signal, 
                        Uint32 tableId, 
@@ -3790,6 +3833,8 @@ Dbdict::restartDropObj_prepare_start_don
   ndbrequire(returnCode == 0);
   DropObjRecordPtr dropObjPtr;  
   ndbrequire(c_opDropObj.find(dropObjPtr, callbackData));
+  if (! (dropObjPtr.p->m_errorCode == 0))
+    restartDropObj_fail(dropObjPtr);
   ndbrequire(dropObjPtr.p->m_errorCode == 0);
   
   dropObjPtr.p->m_callback.m_callbackFunction = 
@@ -3811,6 +3856,8 @@ Dbdict::restartDropObj_prepare_complete_
   ndbrequire(returnCode == 0);
   DropObjRecordPtr dropObjPtr;  
   ndbrequire(c_opDropObj.find(dropObjPtr, callbackData));
+  if (! (dropObjPtr.p->m_errorCode == 0))
+    restartDropObj_fail(dropObjPtr);
   ndbrequire(dropObjPtr.p->m_errorCode == 0);
   
   dropObjPtr.p->m_callback.m_callbackFunction = 
@@ -3832,6 +3879,8 @@ Dbdict::restartDropObj_commit_start_done
   ndbrequire(returnCode == 0);
   DropObjRecordPtr dropObjPtr;  
   ndbrequire(c_opDropObj.find(dropObjPtr, callbackData));
+  if (! (dropObjPtr.p->m_errorCode == 0))
+    restartDropObj_fail(dropObjPtr);
   ndbrequire(dropObjPtr.p->m_errorCode == 0);
   
   dropObjPtr.p->m_callback.m_callbackFunction = 
@@ -3872,6 +3921,8 @@ Dbdict::restartDropObj_commit_complete_d
   ndbrequire(returnCode == 0);
   DropObjRecordPtr dropObjPtr;  
   ndbrequire(c_opDropObj.find(dropObjPtr, callbackData));
+  if (! (dropObjPtr.p->m_errorCode == 0))
+    restartDropObj_fail(dropObjPtr);
   ndbrequire(dropObjPtr.p->m_errorCode == 0);
   
   c_opDropObj.release(dropObjPtr);

=== modified file 'storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp'
--- a/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2009-10-21 11:11:32 +0000
+++ b/storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2009-12-08 15:26:29 +0000
@@ -2494,6 +2494,7 @@ private:
   void restartDropObj_commit_start_done(Signal*, Uint32, Uint32);
   void restartDropObj_commit_complete_done(Signal*, Uint32, Uint32);
   void restartDropObj_updateSchemaFile(Signal*, DropObjRecordPtr);
+  void restartDropObj_fail(DropObjRecordPtr);
 
   void restart_checkSchemaStatusComplete(Signal*, Uint32 callback, Uint32);
   void restart_writeSchemaConf(Signal*, Uint32 callbackData, Uint32);
@@ -2547,6 +2548,7 @@ private:
   void restartCreateObj_prepare_complete_done(Signal*, Uint32, Uint32);
   void restartCreateObj_commit_start_done(Signal*, Uint32, Uint32);
   void restartCreateObj_commit_complete_done(Signal*, Uint32, Uint32);
+  void restartCreateObj_fail(CreateObjRecordPtr);
 
   void execDICT_COMMIT_REQ(Signal*);
   void execDICT_COMMIT_REF(Signal*);


Attachment: [text/bzr-bundle] bzr/jonas@mysql.com-20091208152629-0x8g5pxzhv0ynhvq.bundle
Thread
bzr commit into mysql-5.1-telco-6.3 branch (jonas:3188) Bug#49263Jonas Oreland8 Dec