MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:pekka Date:June 27 2006 7:17pm
Subject:bk commit into 5.0 tree (pekka:1.2205) BUG#18781
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of pekka. When pekka does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet
  1.2205 06/06/27 21:17:31 pekka@stripped +3 -0
  ndb - bug#18781 : safety fix

  ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
    1.53 06/06/27 21:15:56 pekka@stripped +18 -0
    make sure node is Started before sending  DICT_UNLOCK_ORD

  ndb/src/common/debugger/signaldata/DihContinueB.cpp
    1.3 06/06/27 21:15:55 pekka@stripped +4 -0
    make sure node is Started before sending  DICT_UNLOCK_ORD

  ndb/include/kernel/signaldata/DihContinueB.hpp
    1.3 06/06/27 21:15:55 pekka@stripped +3 -1
    make sure node is Started before sending  DICT_UNLOCK_ORD

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	pekka
# Host:	clam.(none)
# Root:	/export/space/pekka/ndb/version/my50-bug18781

--- 1.2/ndb/include/kernel/signaldata/DihContinueB.hpp	2004-10-21 13:12:11 +02:00
+++ 1.3/ndb/include/kernel/signaldata/DihContinueB.hpp	2006-06-27 21:15:55 +02:00
@@ -69,7 +69,9 @@
     ZSEND_END_TO                 = 41,
 
     WAIT_DROP_TAB_WRITING_TO_FILE = 42,
-    CHECK_WAIT_DROP_TAB_FAILED_LQH = 43
+    CHECK_WAIT_DROP_TAB_FAILED_LQH = 43,
+
+    ZDICT_UNLOCK_ORD_WAIT = 44
   };
 };
 

--- 1.2/ndb/src/common/debugger/signaldata/DihContinueB.cpp	2004-10-21 13:12:11 +02:00
+++ 1.3/ndb/src/common/debugger/signaldata/DihContinueB.cpp	2006-06-27 21:15:55 +02:00
@@ -212,6 +212,10 @@
     fprintf(output, " Wait drop tab FailedNodeId: %d TableId: %d\n", 
 	    theData[1], theData[2]);
     return true;
+  case DihContinueB::ZDICT_UNLOCK_ORD_WAIT:
+    fprintf(output, " DICT_UNLOCK_ORD lockSlavePtrI: %u\n", 
+	    theData[1]);
+    return true;
   default:
     fprintf(output, " Default system error lab...\n");
     break;

--- 1.52/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp	2006-06-22 20:58:44 +02:00
+++ 1.53/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp	2006-06-27 21:15:56 +02:00
@@ -610,6 +610,12 @@
     checkWaitDropTabFailedLqh(signal, nodeId, tableId);
     return;
   }
+  case DihContinueB::ZDICT_UNLOCK_ORD_WAIT:{
+    jam();
+    Uint32 lockSlavePtrI = signal->theData[1];
+    sendDictUnlockOrd(signal, lockSlavePtrI);
+    return;
+  }
   }//switch
   
   ndbrequire(false);
@@ -14779,6 +14785,18 @@
 void
 Dbdih::sendDictUnlockOrd(Signal* signal, Uint32 lockSlavePtrI)
 {
+  /*
+   * Must be called after this node is "Started".  But that point is
+   * a bit obscure in 5.0 / 5.1.  Use following fail-safe for now.
+   */
+  if (getNodeState().getNodeRestartInProgress()) {
+    jam();
+    signal->theData[0] = DihContinueB::ZDICT_UNLOCK_ORD_WAIT;
+    signal->theData[1] = lockSlavePtrI;
+    sendSignalWithDelay(reference(), GSN_CONTINUEB, signal, 10, 2);
+    return;
+  }
+
   DictUnlockOrd* ord = (DictUnlockOrd*)&signal->theData[0];
 
   DictLockSlavePtr lockPtr;
Thread
bk commit into 5.0 tree (pekka:1.2205) BUG#18781pekka29 Jun