MySQL Lists are EOL. Please join:

List:Internals« Previous MessageNext Message »
From:tomas Date:October 5 2005 2:35pm
Subject:bk commit into 5.0 tree (tomas:1.2013) BUG#11749
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of tomas. When tomas 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.2013 05/10/05 16:35:28 tomas@stripped +18 -0
  Bug #11749  	No message slogan found for Signal 8 received. (need better message)
  + revised error messages after feedback
  + revides classifications and status
  + removed all progError(..0..) to make sure all error invocations have an error code
  + added some new error codes to replace some generic usage of SYSTEM_ERROR
  + removed some unused codes

  ndb/src/kernel/vm/Configuration.cpp
    1.41 05/10/05 16:35:21 tomas@stripped +1 -1
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/main.cpp
    1.57 05/10/05 16:35:21 tomas@stripped +8 -4
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)

  ndb/src/kernel/error/ndbd_exit_codes.c
    1.5 05/10/05 16:35:21 tomas@stripped +67 -33
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/qmgr/QmgrMain.cpp
    1.21 05/10/05 16:35:21 tomas@stripped +1 -1
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/ndbfs/Filename.cpp
    1.9 05/10/05 16:35:21 tomas@stripped +1 -1
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp
    1.23 05/10/05 16:35:21 tomas@stripped +24 -46
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp
    1.5 05/10/05 16:35:20 tomas@stripped +1 -1
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
    1.85 05/10/05 16:35:20 tomas@stripped +94 -94
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/dbtc/Dbtc.hpp
    1.31 05/10/05 16:35:20 tomas@stripped +3 -3
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
    1.75 05/10/05 16:35:20 tomas@stripped +44 -46
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/dblqh/Dblqh.hpp
    1.36 05/10/05 16:35:20 tomas@stripped +2 -3
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
    1.37 05/10/05 16:35:20 tomas@stripped +9 -19
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/dbdict/Dbdict.cpp
    1.57 05/10/05 16:35:20 tomas@stripped +4 -1
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/dbacc/DbaccMain.cpp
    1.59 05/10/05 16:35:20 tomas@stripped +21 -21
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/src/kernel/blocks/dbacc/Dbacc.hpp
    1.22 05/10/05 16:35:20 tomas@stripped +1 -1
    + removed all progError(..0..) to make sure all error invocations have an error code

  ndb/include/mgmapi/ndbd_exit_codes.h
    1.6 05/10/05 16:35:20 tomas@stripped +17 -8
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)
    + revised error messages after feedback
    + revides classifications and status
    + removed all progError(..0..) to make sure all error invocations have an error code
    + added some new error codes to replace some generic usage of SYSTEM_ERROR
    + removed some unused codes

  ndb/include/kernel/signaldata/SystemError.hpp
    1.2 05/10/05 16:35:19 tomas@stripped +0 -3
    + removed some unused codes

  configure.in
    1.351 05/10/05 16:35:19 tomas@stripped +1 -1
    Bug #11749  	No message slogan found for Signal 8 received. (need better message)

# 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:	tomas
# Host:	poseidon.ndb.mysql.com
# Root:	/home/tomas/mysql-5.0

--- 1.350/configure.in	2005-09-30 13:37:12 +02:00
+++ 1.351/configure.in	2005-10-05 16:35:19 +02:00
@@ -1872,7 +1872,7 @@
   realpath rename rint rwlock_init setupterm \
   shmget shmat shmdt shmctl sigaction sigemptyset sigaddset \
   sighold sigset sigthreadmask \
-  snprintf socket stpcpy strcasecmp strerror strnlen strpbrk strstr strtol \
+  snprintf socket stpcpy strcasecmp strerror strsignal strnlen strpbrk strstr strtol \
   strtoll strtoul strtoull tell tempnam thr_setconcurrency vidattr)
 
 #

--- 1.1/ndb/include/kernel/signaldata/SystemError.hpp	2004-04-14 10:23:55 +02:00
+++ 1.2/ndb/include/kernel/signaldata/SystemError.hpp	2005-10-05 16:35:19 +02:00
@@ -41,10 +41,7 @@
   STATIC_CONST( SignalLength = 4 );
 
   enum ErrorCode {
-    ScanfragStateError = 1,
-    ScanfragTimeout = 2,
     GCPStopDetected = 3,
-    StartInProgressError = 4,
     CopyFragRefError = 5,
     TestStopOnError = 6
   };

--- 1.21/ndb/src/kernel/blocks/dbacc/Dbacc.hpp	2005-09-01 00:19:30 +02:00
+++ 1.22/ndb/src/kernel/blocks/dbacc/Dbacc.hpp	2005-10-05 16:35:20 +02:00
@@ -1071,7 +1071,7 @@
   void seizeRootfragrec(Signal* signal);
   void seizeScanRec(Signal* signal);
   void seizeSrVerRec(Signal* signal);
-  void sendSystemerror(Signal* signal);
+  void sendSystemerror(Signal* signal, int line);
   void takeRecOutOfFreeOverdir(Signal* signal);
   void takeRecOutOfFreeOverpage(Signal* signal);
   void sendScanHbRep(Signal* signal, Uint32);

--- 1.58/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2005-10-04 20:05:52 +02:00
+++ 1.59/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2005-10-05 16:35:20 +02:00
@@ -55,8 +55,7 @@
   // There can not be more than cundopagesize remaining
   if (Remaining <= 0){
     // No more undolog, crash node
-    progError(__LINE__,
-	      NDBD_EXIT_NO_MORE_UNDOLOG,
+    progError(__LINE__, NDBD_EXIT_NO_MORE_UNDOLOG,
 	      "There are more than 1Mbyte undolog writes outstanding");
   }
   return Remaining;
@@ -5630,7 +5629,7 @@
 	  //-------------------------------------------------------------
         } else {
           jam();
-          sendSystemerror(signal);
+          sendSystemerror(signal, __LINE__);
           return TreturnCode;
         }//if
       }//if
@@ -6058,7 +6057,7 @@
   fragrecptr.p->expReceiveForward = tidrForward;
   if (tshrRemLen < tshrInc) {
     jam();
-    sendSystemerror(signal);
+    sendSystemerror(signal, __LINE__);
   }//if
   tshrRemLen = tshrRemLen - tshrInc;
   if (tshrRemLen != 0) {
@@ -6093,7 +6092,7 @@
     cexcForward = cminusOne;
   } else {
     jam();
-    sendSystemerror(signal);
+    sendSystemerror(signal, __LINE__);
     cexcForward = 0;	/* DUMMY FOR COMPILER */
   }//if
   if (tnciNextSamePage == ZFALSE) {
@@ -6592,7 +6591,7 @@
   ptrCheckGuard(lcpConnectptr, clcpConnectsize, lcpConnectrec);
   if (lcpConnectptr.p->lcpstate != LCP_ACTIVE) {
     jam();
-    sendSystemerror(signal);
+    sendSystemerror(signal, __LINE__);
     return;
   }//if
   if (ERROR_INSERTED(3000)) {
@@ -6778,7 +6777,7 @@
 	releaseOverpage(signal);
       } else {
         jam();
-	sendSystemerror(signal);
+	sendSystemerror(signal, __LINE__);
       }
     }//if
   }
@@ -6918,7 +6917,7 @@
     break;
   default:
     jam();
-    sendSystemerror(signal);
+    sendSystemerror(signal, __LINE__);
     return;
     break;
   }//switch
@@ -7201,7 +7200,7 @@
     /*empty*/;
   } else {
     jam();
-    sendSystemerror(signal);
+    sendSystemerror(signal, __LINE__);
     return;
   }//if
   /*-----------------------------------------------------------------*/
@@ -7222,7 +7221,7 @@
     /*empty*/;
   } else {
     jam();
-    sendSystemerror(signal);
+    sendSystemerror(signal, __LINE__);
     return;
   }//if
   lcnCopyPageptr.p->word32[ZPOS_CHECKSUM] = tlcnChecksum;
@@ -7269,7 +7268,7 @@
   }//while
   if (tlupConLen < ZCON_HEAD_SIZE) {
     jam();
-    sendSystemerror(signal);
+    sendSystemerror(signal, __LINE__);
   }//if
 }//Dbacc::lcpUpdatePage()
 
@@ -7542,7 +7541,7 @@
       /* ONLY PAGE INFO AND OVERFLOW PAGE INFO CAN BE LOGGED BY THIS ROUTINE. A      */
       /* SERIOUS ERROR.                                                              */
       /* --------------------------------------------------------------------------- */
-      sendSystemerror(signal);
+      sendSystemerror(signal, __LINE__);
     }
   } else {
     if (fragrecptr.p->fragState == LCP_SEND_OVER_PAGES) {
@@ -8545,7 +8544,7 @@
     /*---------------------------------------------------------------------------*/
     if (cfsFirstfreeconnect == RNIL) {
       jam();
-      sendSystemerror(signal);
+      sendSystemerror(signal, __LINE__);
     }//if
     seizeFsConnectRec(signal);
     cactiveSrFsPtr = fsConnectptr.i;
@@ -8722,7 +8721,8 @@
       ptrCheckGuard(fragrecptr, cfragmentsize, fragmentrec);
     } else {
       jam();
-      progError(__LINE__, 0, "Invalid local fragment id in undo log");
+      progError(__LINE__, NDBD_EXIT_SR_UNDOLOG,
+		"Invalid local fragment id in undo log");
       return;
     }//if
   }//if
@@ -8899,7 +8899,7 @@
 
   default:
     jam();
-    progError(__LINE__, 0, "Invalid pagetype in undo log");
+    progError(__LINE__, NDBD_EXIT_SR_UNDOLOG, "Invalid pagetype in undo log");
     break;
 
   }//switch(tpageType)
@@ -9369,7 +9369,7 @@
 	    /* --------------------------------------------------------------------------------- */
             if (scanPtr.p->minBucketIndexToRescan != 0) {
               jam();
-              sendSystemerror(signal);
+              sendSystemerror(signal, __LINE__);
               return;
             }//if
             scanPtr.p->maxBucketIndexToRescan = fragrecptr.p->p + fragrecptr.p->maxp;
@@ -9534,7 +9534,7 @@
     } else {
       jam();
       /* ALL ELEMENTS ARE SENT */
-      sendSystemerror(signal);
+      sendSystemerror(signal, __LINE__);
     }//if
   }//if
   /* --------------------------------------------------------------------------------- */
@@ -10132,7 +10132,7 @@
   if (trscContainerlen < 4) {
     if (trscContainerlen != ZCON_HEAD_SIZE) {
       jam();
-      sendSystemerror(signal);
+      sendSystemerror(signal, __LINE__);
     }//if
     return;	/* 2 IS THE MINIMUM SIZE OF THE ELEMENT */
   }//if
@@ -10167,7 +10167,7 @@
   } while (trscElemlens > 1);
   if (trscElemlens != 0) {
     jam();
-    sendSystemerror(signal);
+    sendSystemerror(signal, __LINE__);
   }//if
 }//Dbacc::releaseScanContainer()
 
@@ -11284,9 +11284,9 @@
 /* --------------------------------------------------------------------------------- */
 /* SEND_SYSTEMERROR                                                                  */
 /* --------------------------------------------------------------------------------- */
-void Dbacc::sendSystemerror(Signal* signal) 
+void Dbacc::sendSystemerror(Signal* signal, int line)
 {
-  progError(0, 0);
+  progError(line, NDBD_EXIT_PRGERR);
 }//Dbacc::sendSystemerror()
 
 /* --------------------------------------------------------------------------------- */

--- 1.56/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2005-09-22 09:10:08 +02:00
+++ 1.57/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2005-10-05 16:35:20 +02:00
@@ -5326,7 +5326,10 @@
 /* ---------------------------------------------------------------- */
 // Error Handling code needed
 /* ---------------------------------------------------------------- */
-  progError(ref->errorCode, 0);
+  char buf[32];
+  BaseString::snprintf(buf, sizeof(buf), "WAIT_GCP_REF ErrorCode=%d",
+		       ref->errorCode);
+  progError(__LINE__, NDBD_EXIT_NDBREQUIRE, buf);
 }//execWAIT_GCP_REF()
 
 

--- 1.36/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp	2005-10-04 20:05:52 +02:00
+++ 1.37/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp	2005-10-05 16:35:20 +02:00
@@ -1473,9 +1473,7 @@
 	       "Illegal configuration change."
 	       " Initial start needs to be performed "
 	       " when changing no of storage nodes (node %d)", i);
-      progError(__LINE__, 
-		NDBD_EXIT_INVALID_CONFIG,
-		buf);
+      progError(__LINE__, NDBD_EXIT_INVALID_CONFIG, buf);
     }
   }
   
@@ -3536,9 +3534,7 @@
 	       " Initial start needs to be performed "
 	       " when changing no of replicas (%d != %d)", 
 	       node_groups[nodePtr.i], cnoReplicas);
-      progError(__LINE__, 
-		NDBD_EXIT_INVALID_CONFIG,
-		buf);
+      progError(__LINE__, NDBD_EXIT_INVALID_CONFIG, buf);
     }
   }
 }//Dbdih::selectMasterCandidate()
@@ -3819,9 +3815,7 @@
 
     if(getNodeState().getNodeRestartInProgress()){
       jam();
-      progError(__LINE__, 
-		NDBD_EXIT_SYSTEM_ERROR,
-		"Unhandle master failure during node restart");
+      progError(__LINE__, NDBD_EXIT_MASTER_FAILURE_DURING_NR);
     }
   }
 
@@ -8702,14 +8696,10 @@
     /*   THIS WILL DECREASE THE GCI TO RESTORE WHICH HOPEFULLY WILL MAKE IT  */
     /*   POSSIBLE TO RESTORE THE SYSTEM.                                     */
     /* --------------------------------------------------------------------- */
-    char buf[100];
-    BaseString::snprintf(buf, sizeof(buf), 
-	     "Unable to find restorable replica for "
-	     "table: %d fragment: %d gci: %d",
-	     tableId, fragId, SYSFILE->newestRestorableGCI);
-    progError(__LINE__, 
-	      NDBD_EXIT_SYSTEM_ERROR,
-	      buf);
+    char buf[64];
+    BaseString::snprintf(buf, sizeof(buf), "table: %d fragment: %d gci: %d",
+			 tableId, fragId, SYSFILE->newestRestorableGCI);
+    progError(__LINE__, NDBD_EXIT_NO_RESTORABLE_REPLICA, buf);
     ndbrequire(false);
     return;
   }//if
@@ -10557,7 +10547,7 @@
     break;
   default:
     jam();
-    progError(0, 0);
+    ndbrequire(false);
     break;
   }//switch
 }//Dbdih::calculateHotSpare()
@@ -10590,7 +10580,7 @@
     jam();
     if (TnodeGroup[i] == ZFALSE) {
       jam();
-      progError(__LINE__, NDBD_EXIT_SYSTEM_ERROR, "Lost node group");
+      progError(__LINE__, NDBD_EXIT_LOST_NODE_GROUP, "Lost node group");
     }//if
   }//for
 }//Dbdih::checkEscalation()

--- 1.35/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2005-09-09 23:17:39 +02:00
+++ 1.36/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2005-10-05 16:35:20 +02:00
@@ -2412,7 +2412,7 @@
   void startNextExecSr(Signal* signal);
   void startTimeSupervision(Signal* signal);
   void stepAhead(Signal* signal, Uint32 stepAheadWords);
-  void systemError(Signal* signal);
+  void systemError(Signal* signal, int line);
   void writeAbortLog(Signal* signal);
   void writeCommitLog(Signal* signal, LogPartRecordPtr regLogPartPtr);
   void writeCompletedGciLog(Signal* signal);
@@ -2431,7 +2431,7 @@
   Uint32 calcPageCheckSum(LogPageRecordPtr logP);
 
   // Generated statement blocks
-  void systemErrorLab(Signal* signal);
+  void systemErrorLab(Signal* signal, int line);
   void initFourth(Signal* signal);
   void packLqhkeyreqLab(Signal* signal);
   void sendNdbSttorryLab(Signal* signal);
@@ -2441,7 +2441,6 @@
   void srLogLimits(Signal* signal);
   void srGciLimits(Signal* signal);
   void srPhase3Start(Signal* signal);
-  void warningHandlerLab(Signal* signal);
   void checkStartCompletedLab(Signal* signal);
   void continueAbortLab(Signal* signal);
   void abortContinueAfterBlockedLab(Signal* signal, bool canBlock);

--- 1.74/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-10-03 20:04:25 +02:00
+++ 1.75/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-10-05 16:35:20 +02:00
@@ -168,11 +168,11 @@
 /* -------               SEND SYSTEM ERROR                           ------- */
 /*                                                                           */
 /* ------------------------------------------------------------------------- */
-void Dblqh::systemError(Signal* signal) 
+void Dblqh::systemError(Signal* signal, int line)
 {
   signal->theData[0] = 2304;
   execDUMP_STATE_ORD(signal);
-  progError(0, 0);
+  progError(line, NDBD_EXIT_NDBREQUIRE);
 }//Dblqh::systemError()
 
 /* *************** */
@@ -5120,7 +5120,7 @@
     jam();
     break;
   }//switch
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Dblqh::errorReport()
 
@@ -5181,7 +5181,7 @@
   Uint32 transid2 = signal->theData[4];
   Uint32 tcOprec = signal->theData[6];
   if (ERROR_INSERTED(5004)) {
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }
   if (ERROR_INSERTED(5017)) {
     CLEAR_ERROR_INSERT_VALUE;
@@ -5303,7 +5303,7 @@
   Uint32 transid2 = signal->theData[3];
   Uint32 tcOprec = signal->theData[5];
   if (ERROR_INSERTED(5005)) {
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }
   if (ERROR_INSERTED(5018)) {
     CLEAR_ERROR_INSERT_VALUE;
@@ -5932,7 +5932,7 @@
   Uint32 transid2 = signal->theData[3];
   Uint32 tcOprec = signal->theData[5];
   if (ERROR_INSERTED(5006)) {
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }
   if (ERROR_INSERTED(5016)) {
     CLEAR_ERROR_INSERT_VALUE;
@@ -6743,7 +6743,7 @@
 	      /* ------------------------------------------------------------
 	       * THIS IS AN ERROR THAT SHOULD NOT OCCUR. WE CRASH THE SYSTEM.
 	       * ------------------------------------------------------------ */
-               systemErrorLab(signal);
+               systemErrorLab(signal, __LINE__);
                return;
             }//if
           }//if
@@ -6920,7 +6920,7 @@
 void Dblqh::execNEXT_SCANREF(Signal* signal) 
 {
   jamEntry();
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Dblqh::execNEXT_SCANREF()
 
@@ -9199,7 +9199,7 @@
     jam();
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
     break;
   }//switch
@@ -9491,7 +9491,7 @@
 // Make sure that something is in progress. Otherwise we will simply stop
 // and nothing more will happen.
 /*---------------------------------------------------------------------------*/
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//if
   return;
@@ -9510,7 +9510,7 @@
 // scans on the same record and this will certainly lead to unexpected
 // behaviour.
 /*---------------------------------------------------------------------------*/
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//if
   scanptr.p->scanState = ScanRecord::WAIT_NEXT_SCAN_COPY;
@@ -9537,7 +9537,7 @@
     jam();
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
     break;
   }//switch
@@ -9611,7 +9611,7 @@
     jam();
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
     break;
   }//switch
@@ -10632,7 +10632,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
     break;
   }//switch
@@ -11456,7 +11456,7 @@
   const GCPSaveReq * const saveReq = (GCPSaveReq *)&signal->theData[0];
 
   if (ERROR_INSERTED(5000)) {
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }
 
   if (ERROR_INSERTED(5007)){
@@ -11822,7 +11822,7 @@
     return;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
 }//Dblqh::execFSCLOSECONF()
@@ -11897,7 +11897,7 @@
     return;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
 }//Dblqh::execFSOPENCONF()
@@ -11956,7 +11956,7 @@
     return;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
 }//Dblqh::execFSREADCONF()
@@ -12058,7 +12058,7 @@
     return;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
 }//Dblqh::execFSWRITECONF()
@@ -12102,7 +12102,7 @@
     break;
   case LogFileOperationRecord::WRITE_SR_INVALIDATE_PAGES:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   default:
     jam();
     break;
@@ -12316,7 +12316,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
     break;
   }//switch
@@ -13550,7 +13550,7 @@
   ptrCheckGuard(lcpLocptr, clcpLocrecFileSize, lcpLocRecord);
   if (lcpLocptr.p->lcpLocstate != LcpLocRecord::SR_ACC_STARTED) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//if
 
@@ -13572,7 +13572,7 @@
 {
   jamEntry();
   terrorCode = signal->theData[1];
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Dblqh::execACC_SRREF()
 
@@ -13712,7 +13712,7 @@
 {
   jamEntry();
   terrorCode = signal->theData[1];
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Dblqh::execTUP_SRREF()
 
@@ -14012,7 +14012,7 @@
 {
   jamEntry();
   terrorCode = signal->theData[1];
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Dblqh::execEXEC_FRAGREF()
 
@@ -14104,7 +14104,7 @@
 	 *  PROBLEM.  THIS SHOULD NOT OCCUR. IF IT OCCURS ANYWAY THEN WE 
 	 *  HAVE TO FIND A CURE FOR THIS PROBLEM.
 	 * ----------------------------------------------------------------- */
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
         return;
       }//if
       signal->theData[0] = ZSR_LOG_LIMITS;
@@ -14631,7 +14631,7 @@
       break;
     default:
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       return;
       break;
     }//switch
@@ -14982,12 +14982,12 @@
   jam();
   if (logPartPtr.p->logExecState != LogPartRecord::LES_EXEC_LOG_INVALIDATE) {
     jam();
-    systemError(signal);
+    systemError(signal, __LINE__);
   }
 
   if (logFilePtr.p->fileNo != logPartPtr.p->invalidateFileNo) {
     jam();
-    systemError(signal);
+    systemError(signal, __LINE__);
   }
 
   switch (lfoPtr.p->lfoState) {
@@ -15042,7 +15042,7 @@
 
   default:
     jam();
-    systemError(signal);
+    systemError(signal, __LINE__);
     return;
     break;
   }
@@ -15190,7 +15190,7 @@
     if (logPartPtr.p->logPartState != LogPartRecord::SR_THIRD_PHASE_COMPLETED) {
       if (logPartPtr.p->logPartState != LogPartRecord::SR_THIRD_PHASE_STARTED) {
         jam();
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
         return;
       } else {
         jam();
@@ -15448,7 +15448,7 @@
        *  THE HEADER PAGE IN THE LOG IS PAGE ZERO IN FILE ZERO. 
        *  THIS SHOULD NEVER OCCUR.
        * ------------------------------------------------------------------- */
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       return;
     }//if
   }//if
@@ -15502,7 +15502,7 @@
     if (logPartPtr.p->logPartState != LogPartRecord::SR_FOURTH_PHASE_COMPLETED) {
       if (logPartPtr.p->logPartState != LogPartRecord::SR_FOURTH_PHASE_STARTED) {
         jam();
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
         return;
       } else {
         jam();
@@ -15563,11 +15563,6 @@
 /* #######                            ERROR MODULE                   ####### */
 /*                                                                           */
 /* ######################################################################### */
-void Dblqh::warningHandlerLab(Signal* signal) 
-{
-  systemErrorLab(signal);
-  return;
-}//Dblqh::warningHandlerLab()
 
 /*---------------------------------------------------------------------------*/
 /* AN ERROR OCCURRED THAT WE WILL NOT TREAT AS SYSTEM ERROR. MOST OFTEN THIS */
@@ -15588,10 +15583,10 @@
 /*      THE COMMIT, COMPLETE OR ABORT PHASE, WE PERFORM A CRASH OF THE AXE VM*/
 /*---------------------------------------------------------------------------*/
 
-void Dblqh::systemErrorLab(Signal* signal) 
+void Dblqh::systemErrorLab(Signal* signal, int line) 
 {
-  systemError(signal);
-  progError(0, 0);
+  systemError(signal, line);
+  progError(line, NDBD_EXIT_NDBREQUIRE);
 /*************************************************************************>*/
 /*       WE WANT TO INVOKE AN IMMEDIATE ERROR HERE SO WE GET THAT BY       */
 /*       INSERTING A CERTAIN POINTER OUT OF RANGE.                         */
@@ -15926,7 +15921,7 @@
     jam();
     if (cscLcpLocptr.p->lcpLocstate != LcpLocRecord::SR_ACC_STARTED) {
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       return;
     }//if
     return;
@@ -15943,7 +15938,7 @@
     jam();
     if (cscLcpLocptr.p->lcpLocstate != LcpLocRecord::SR_TUP_STARTED) {
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       return;
     }//if
     return;
@@ -17511,7 +17506,7 @@
   racTcNextConnectptr.i = tcConnectptr.p->nextTc;
   if (tcConnectptr.p->listState != TcConnectionrec::ACC_BLOCK_LIST) {
     jam();
-    systemError(signal);
+    systemError(signal, __LINE__);
   }//if
   tcConnectptr.p->listState = TcConnectionrec::NOT_IN_LIST;
   if (racTcNextConnectptr.i != RNIL) {
@@ -17690,7 +17685,7 @@
   rwaTcNextConnectptr.i = tcConnectptr.p->nextTc;
   if (tcConnectptr.p->listState != TcConnectionrec::WAIT_QUEUE_LIST) {
     jam();
-    systemError(signal);
+    systemError(signal, __LINE__);
   }//if
   tcConnectptr.p->listState = TcConnectionrec::NOT_IN_LIST;
   if (rwaTcNextConnectptr.i != RNIL) {
@@ -18254,7 +18249,7 @@
 /*       CAN INVOKE THIS SYSTEM CRASH. HOWEVER ONLY   */
 /*       VERY SERIOUS TIMING PROBLEMS.                */
 /* -------------------------------------------------- */
-      systemError(signal);
+      systemError(signal, __LINE__);
     }//if
   }//if
   if (logFilePtr.p->currentMbyte == (ZNO_MBYTES_IN_FILE - 1)) {
@@ -18520,6 +18515,9 @@
     if(arg== 2305)
     {
       progError(__LINE__, NDBD_EXIT_SYSTEM_ERROR, 
+		"Please report this as a bug. "
+		"Provide as much info as possible, expecially all the "
+		"ndb_*_out.log files, Thanks. "
 		"Shutting down node due to failed handling of GCP_SAVEREQ");
       
     }

--- 1.30/ndb/src/kernel/blocks/dbtc/Dbtc.hpp	2005-08-22 10:59:21 +02:00
+++ 1.31/ndb/src/kernel/blocks/dbtc/Dbtc.hpp	2005-10-05 16:35:20 +02:00
@@ -1465,7 +1465,7 @@
   void sendContinueTimeOutControl(Signal* signal, Uint32 TapiConPtr);
   void sendKeyinfo(Signal* signal, BlockReference TBRef, Uint32 len);
   void sendlqhkeyreq(Signal* signal, BlockReference TBRef);
-  void sendSystemError(Signal* signal);
+  void sendSystemError(Signal* signal, int line);
   void sendtckeyconf(Signal* signal, UintR TcommitFlag);
   void sendTcIndxConf(Signal* signal, UintR TcommitFlag);
   void unlinkApiConnect(Signal* signal);
@@ -1541,8 +1541,8 @@
                             bool holdOperation = false);
   void releaseFiredTriggerData(DLFifoList<TcFiredTriggerData>* triggers);
   // Generated statement blocks
-  void warningHandlerLab(Signal* signal);
-  void systemErrorLab(Signal* signal);
+  void warningHandlerLab(Signal* signal, int line);
+  void systemErrorLab(Signal* signal, int line);
   void sendSignalErrorRefuseLab(Signal* signal);
   void scanTabRefLab(Signal* signal, Uint32 errCode);
   void diFcountReqLab(Signal* signal, ScanRecordPtr);

--- 1.84/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp	2005-10-04 20:05:53 +02:00
+++ 1.85/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp	2005-10-05 16:35:20 +02:00
@@ -1031,7 +1031,7 @@
         /*********************************************************************/
         // Not implemented yet.
         /*********************************************************************/
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
         break;
       case CS_RESTART:
         jam();
@@ -1055,7 +1055,7 @@
         /*********************************************************************/
       default:
         jam();
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
         break;
       }//switch
     } else {
@@ -1394,7 +1394,7 @@
 	     << " keylen = " << regCachePtr->keylen << endl;
     } else {
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
     }//if
   }//if
 #endif
@@ -1448,7 +1448,7 @@
     return;
   case 6:
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
 
   case 7:
@@ -1469,7 +1469,7 @@
 
   case 10:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 11:
@@ -1500,7 +1500,7 @@
       /*       PARTICULAR TC CONNECT RECORD. THIS MUST BE CAUSED BY NDB   */
       /*       INTERNAL ERROR.                                            */
       /********************************************************************/
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       return;
     }//switch
     return;
@@ -1513,17 +1513,17 @@
 
   case 16:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 17:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 18:
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
 
   case 19:
@@ -1532,22 +1532,22 @@
 
   case 20:
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
 
   case 21:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 22:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 23:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 24:
@@ -1557,7 +1557,7 @@
 
   case 25:
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
 
   case 26:
@@ -1565,7 +1565,7 @@
     return;
 
   case 27:
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     jam();
     return;
 
@@ -1576,92 +1576,92 @@
 
   case 29:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 30:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 31:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 32:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 33:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 34:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 35:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 36:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 37:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 38:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 39:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 40:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 41:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 42:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 43:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 44:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 45:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 46:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 47:
@@ -1683,7 +1683,7 @@
 
   case 50:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
 
   case 51:
@@ -1759,7 +1759,7 @@
     
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
 }
@@ -1772,7 +1772,7 @@
   tmaxData = 20;
   if (apiConnectptr.i >= capiConnectFilesize) {
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }//if
   ptrAss(apiConnectptr, apiConnectRecord);
@@ -1819,7 +1819,7 @@
     return;
   default:
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }//switch
 
@@ -3085,7 +3085,7 @@
       break;
     default:
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       return;
     }//switch
     attrinfoDihReceivedLab(signal);
@@ -3152,7 +3152,7 @@
   CacheRecord * const regCachePtr = cachePtr.p;
 #ifdef ERROR_INSERT
   if (ERROR_INSERTED(8002)) {
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   if (ERROR_INSERTED(8007)) {
     if (apiConnectptr.p->apiConnectstate == CS_STARTED) {
@@ -3411,7 +3411,7 @@
     regApiPtr->cachePtr = RNIL;
     return;
   }//if
-  systemErrorLab(0);
+  systemErrorLab(0, __LINE__);
   return;
 }//Dbtc::releaseAttrinfo()
 
@@ -3524,7 +3524,7 @@
   Tlength = signal->length();
   if (Tlength > 25) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//if
   Uint32* TpackDataPtr;
@@ -3579,7 +3579,7 @@
       Tstep += LqhKeyConf::SignalLength;
       break;
     default:
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       return;
     }//switch
   }//while
@@ -3657,7 +3657,7 @@
 
 #ifdef ERROR_INSERT
   if (ERROR_INSERTED(8029)) {
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   if (ERROR_INSERTED(8003)) {
     if (regApiPtr->apiConnectstate == CS_STARTED) {
@@ -4142,7 +4142,7 @@
   signal->theData[0] = apiConnectptr.i;
   if (ERROR_INSERTED(8022)) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   if (TfirstfreeApiConnectCopy != RNIL) {
     seizeApiConnectCopy(signal);
@@ -4490,7 +4490,7 @@
     return;
   }//if
   if (ERROR_INSERTED(8030)) {
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   if (ERROR_INSERTED(8025)) {
     SET_ERROR_INSERT_VALUE(8026);
@@ -4544,7 +4544,7 @@
   }//if
   if (ERROR_INSERTED(8020)) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   /*-------------------------------------------------------*/
   /* THE ENTIRE TRANSACTION IS NOW COMMITED                */
@@ -4781,7 +4781,7 @@
   m_commitAckMarkerHash.release(removedMarker, key);
   if (removedMarker.i == RNIL) {
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }//if
   sendRemoveMarkers(signal, removedMarker.p);
@@ -4843,7 +4843,7 @@
 
 #ifdef ERROR_INSERT
   if (ERROR_INSERTED(8031)) {
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   if (ERROR_INSERTED(8019)) {
     CLEAR_ERROR_INSERT_VALUE;
@@ -4902,7 +4902,7 @@
   }//if
   if (ERROR_INSERTED(8021)) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   apiConnectptr = localApiConnectptr;
   releaseTransResources(signal);
@@ -5342,7 +5342,7 @@
       return;
       break;
     default:
-      warningHandlerLab(signal);
+      warningHandlerLab(signal, __LINE__);
       return;
     }//switch
     TcCommitRef * const commitRef = (TcCommitRef*)&signal->theData[0];
@@ -5355,7 +5355,7 @@
     return;
   } else /** apiConnectptr.i < capiConnectFilesize */ {
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }
 }//Dbtc::execTC_COMMITREQ()
@@ -5451,12 +5451,12 @@
 
 TC_ROLL_warning:
   jam();
-  warningHandlerLab(signal);
+  warningHandlerLab(signal, __LINE__);
   return;
 
 TC_ROLL_system_error:
   jam();
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Dbtc::execTCROLLBACKREQ()
 
@@ -5697,7 +5697,7 @@
     jam();
     break;
   }//switch
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Dbtc::errorReport()
 
@@ -5754,7 +5754,7 @@
   }//if
   if (ERROR_INSERTED(8024)) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
 
   /**
@@ -5927,12 +5927,12 @@
   case OS_ABORT_SENT:
     jam();
     DEBUG("ABORT_SENT state in abort015Lab(), not expected");
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   default:
     jam();
     DEBUG("tcConnectstate = " << tcConnectptr.p->tcConnectstate);
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
 
@@ -6048,7 +6048,7 @@
       ctimeOutMissedHeartbeats++;
       if (ctimeOutMissedHeartbeats > 100){
 	jam();
-	systemErrorLab(signal);
+	systemErrorLab(signal, __LINE__);
       }
     }
     ctimeOutCheckLastHeartbeat = ctimeOutCheckHeartbeat;
@@ -6237,7 +6237,7 @@
     if (((ctcTimer - getApiConTimer(apiConnectptr.i)) > (10 * ctimeOutValue)) &&
         ((ctcTimer - getApiConTimer(apiConnectptr.i)) > 500)) {
         jam();
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
     }//if
     break;
   case CS_COMMIT_SENT:
@@ -6385,7 +6385,7 @@
     /*       AN IMPOSSIBLE STATE IS SET. CRASH THE SYSTEM.              */
     /*------------------------------------------------------------------*/
     DEBUG("State = " << apiConnectptr.p->apiConnectstate);
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
   return;
@@ -6655,7 +6655,7 @@
     break;
   default:
     DEBUG("execSCAN_HBREP: scanFragState="<<scanFragptr.p->scanFragState);
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     break;
   }
 
@@ -6753,7 +6753,7 @@
      * version. In a release version we will simply set the time-out to zero.
      *-----------------------------------------------------------------------*/
 #ifdef VM_TRACE
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
 #endif
     scanFragptr.p->stopFragTimer();
     break;
@@ -6762,7 +6762,7 @@
     /*-----------------------------------------------------------------------
      * Non-existent state. Crash.
      *-----------------------------------------------------------------------*/
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     break;
   }//switch
   
@@ -7100,7 +7100,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
 }//Dbtc::execTAKE_OVERTCCONF()
@@ -7329,7 +7329,7 @@
   arrGuard(TtakeOverInd, MAX_NDB_NODES);
   if (tcNodeFailptr.p->takeOverProcState[TtakeOverInd] != ZTAKE_OVER_ACTIVE) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//if
   tcNodeFailptr.p->takeOverProcState[TtakeOverInd] = ZTAKE_OVER_IDLE;
@@ -7456,7 +7456,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
   }//switch
 }//Dbtc::completeTransAtTakeOverDoOne()
@@ -7582,7 +7582,7 @@
         break;
       default:
         jam();
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
         return;
       }//switch
     }//if
@@ -7691,7 +7691,7 @@
   }//if
   if (ERROR_INSERTED(8026)) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   tcurrentReplicaNo = (Uint8)Z8NIL;
   tcConnectptr.p->tcConnectstate = OS_COMMITTED;
@@ -7741,7 +7741,7 @@
         break;
       default:
         jam();
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
         return;
         break;
       }//switch
@@ -7836,7 +7836,7 @@
   }//if
   if (ERROR_INSERTED(8028)) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   tcConnectptr.p->tcConnectstate = OS_COMPLETED;
   tcurrentReplicaNo = (Uint8)Z8NIL;
@@ -7951,7 +7951,7 @@
     jam();
     if (cfirstfreeApiConnectFail == RNIL) {
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       return;
     }//if
     seizeApiConnectFail(signal);
@@ -7995,7 +7995,7 @@
       jam();
       if (cfirstfreeTcConnectFail == RNIL) {
         jam();
-        systemErrorLab(signal);
+        systemErrorLab(signal, __LINE__);
         return;
       }//if
       seizeTcConnectFail(signal);
@@ -8054,7 +8054,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   apiConnectptr.p->commitAckMarker = RNIL;
   if(LqhTransConf::getMarkerFlag(treqinfo)){
@@ -8176,7 +8176,7 @@
       break;
     default:
       jam();
-      sendSystemError(signal);
+      sendSystemError(signal, __LINE__);
       break;
     }//switch
     if (tabortInd != ZCOMMIT_SETUP) {
@@ -8263,7 +8263,7 @@
       break;
     default:
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       break;
     }//switch
     break;
@@ -8286,7 +8286,7 @@
       break;
     default:
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       break;
     }//switch
     break;
@@ -8296,7 +8296,7 @@
     case CS_FAIL_COMMITTING:
     case CS_FAIL_COMMITTED:
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       break;
     case CS_FAIL_PREPARED:
       jam();
@@ -8309,7 +8309,7 @@
       break;
     default:
       jam();
-      systemErrorLab(signal);
+      systemErrorLab(signal, __LINE__);
       break;
     }//switch
     break;
@@ -8318,7 +8318,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     break;
   }//switch
 }//Dbtc::updateApiStateFail()
@@ -8436,14 +8436,14 @@
   abortErrorLab(signal);
 }//Dbtc::releaseAtErrorLab()
 
-void Dbtc::warningHandlerLab(Signal* signal) 
+void Dbtc::warningHandlerLab(Signal* signal, int line) 
 {
   ndbassert(false);
 }//Dbtc::warningHandlerLab()
 
-void Dbtc::systemErrorLab(Signal* signal) 
+void Dbtc::systemErrorLab(Signal* signal, int line) 
 {
-  progError(0, 0);
+  progError(line, NDBD_EXIT_NDBREQUIRE);
 }//Dbtc::systemErrorLab()
 
 
@@ -8573,7 +8573,7 @@
   if (apiConnectptr.i >= capiConnectFilesize)
   {
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }//if
 
@@ -9213,7 +9213,7 @@
   transid1 = transid1 | transid2;
   if (transid1 != 0) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
 
   /**
@@ -9309,7 +9309,7 @@
   transid1 = transid1 | transid2;
   if (transid1 != 0) {
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
   }//if
   
   ndbrequire(scanFragptr.p->scanFragState == ScanFragRec::LQH_ACTIVE);
@@ -9397,7 +9397,7 @@
   apiConnectptr.i = req->apiConnectPtr;
   if (apiConnectptr.i >= capiConnectFilesize) {
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }//if
   ptrAss(apiConnectptr, apiConnectRecord);
@@ -10046,7 +10046,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
     break;
   }//switch
@@ -10283,7 +10283,7 @@
     if(!ok){
       jam();
       ndbout_c("returnsignal = %d", apiConnectptr.p->returnsignal);
-      sendSystemError(signal);
+      sendSystemError(signal, __LINE__);
     }//if
 
   }
@@ -10510,9 +10510,9 @@
   sendSignal(TBRef, GSN_KEYINFO, signal, 3 + len, JBB);
 }//Dbtc::sendKeyinfo()
 
-void Dbtc::sendSystemError(Signal* signal) 
+void Dbtc::sendSystemError(Signal* signal, int line) 
 {
-  progError(0, 0);
+  progError(line, NDBD_EXIT_NDBREQUIRE);
 }//Dbtc::sendSystemError()
 
 /* ========================================================================= */
@@ -10533,7 +10533,7 @@
      * WE ARE TRYING TO REMOVE A GLOBAL CHECKPOINT WHICH WAS NOT THE OLDEST. 
      * THIS IS A SYSTEM ERROR.                                              
      * ------------------------------------------------------------------- */
-    sendSystemError(signal);
+    sendSystemError(signal, __LINE__);
   }//if
   gcpPtr.p->nextGcp = cfirstfreeGcp;
   cfirstfreeGcp = gcpPtr.i;
@@ -11262,7 +11262,7 @@
   transPtr.i = TapiIndex;
   if (transPtr.i >= capiConnectFilesize) {
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }//if
   ptrAss(transPtr, apiConnectRecord);
@@ -11416,7 +11416,7 @@
   transPtr.i = TconnectIndex;
   if (transPtr.i >= capiConnectFilesize) {
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }//if
   ptrAss(transPtr, apiConnectRecord);
@@ -11449,7 +11449,7 @@
   transPtr.i = TconnectIndex;
   if (transPtr.i >= capiConnectFilesize) {
     jam();
-    warningHandlerLab(signal);
+    warningHandlerLab(signal, __LINE__);
     return;
   }//if
   ptrAss(transPtr, apiConnectRecord);

--- 1.4/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp	2005-10-04 20:05:53 +02:00
+++ 1.5/ndb/src/kernel/blocks/ndbcntr/Ndbcntr.hpp	2005-10-05 16:35:20 +02:00
@@ -225,7 +225,7 @@
   CheckNodeGroups::Output checkNodeGroups(Signal*, const NdbNodeBitmask &);
   
   // Generated statement blocks
-  void systemErrorLab(Signal* signal);
+  void systemErrorLab(Signal* signal, int line);
 
   void createSystableLab(Signal* signal, unsigned index);
   void crSystab7Lab(Signal* signal);

--- 1.22/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp	2005-10-04 20:05:53 +02:00
+++ 1.23/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp	2005-10-05 16:35:21 +02:00
@@ -139,7 +139,7 @@
       else
 	tmp.appfmt(" %d", to_3);
       
-      progError(__LINE__, NDBD_EXIT_SYSTEM_ERROR, tmp.c_str());
+      progError(__LINE__, NDBD_EXIT_RESTART_TIMEOUT, tmp.c_str());
     }
     
     signal->theData[0] = ZSTARTUP;
@@ -152,7 +152,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
     break;
   }//switch
@@ -170,13 +170,6 @@
   
   jamEntry();
   switch (sysErr->errorCode){
-  case SystemError::StartInProgressError:    
-    BaseString::snprintf(buf, sizeof(buf), 
-	     "Node %d killed this node because "
-	     "master start in progress error",     
-	     killingNode);
-    break;
-
   case SystemError::GCPStopDetected:
     BaseString::snprintf(buf, sizeof(buf), 
 	     "Node %d killed this node because "
@@ -184,20 +177,6 @@
 	     killingNode);
     break;
 
-  case SystemError::ScanfragTimeout:
-    BaseString::snprintf(buf, sizeof(buf), 
-	     "Node %d killed this node because "
-	     "a fragment scan timed out and could not be stopped",     
-	     killingNode);
-    break;
-
-  case SystemError::ScanfragStateError:
-    BaseString::snprintf(buf, sizeof(buf), 
-	     "Node %d killed this node because "
-	     "the state of a fragment scan was out of sync.",     
-	     killingNode);
-    break;
-
   case SystemError::CopyFragRefError:
     BaseString::snprintf(buf, sizeof(buf), 
 	     "Node %d killed this node because "
@@ -213,9 +192,7 @@
     break;
   }
 
-  progError(__LINE__, 
-	    NDBD_EXIT_SYSTEM_ERROR,
-	    buf);
+  progError(__LINE__, NDBD_EXIT_SYSTEM_ERROR, buf);
   return;
 }//Ndbcntr::execSYSTEM_ERROR()
 
@@ -363,7 +340,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     return;
     break;
   }//switch
@@ -403,7 +380,7 @@
 void Ndbcntr::execREAD_NODESREF(Signal* signal) 
 {
   jamEntry();
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Ndbcntr::execREAD_NODESREF()
 
@@ -414,7 +391,7 @@
 void Ndbcntr::execNDB_STARTREF(Signal* signal) 
 {
   jamEntry();
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Ndbcntr::execNDB_STARTREF()
 
@@ -1388,7 +1365,7 @@
     break;
   default:
     jam();
-    systemErrorLab(signal);
+    systemErrorLab(signal, __LINE__);
     break;
   }//switch
 }//Ndbcntr::execCNTR_WAITREP()
@@ -1444,22 +1421,19 @@
     const bool tStartConf = (phase > 2) || (phase == 2 && cndbBlocksCount > 0);
 
     if(tMasterFailed){
-      progError(__LINE__,
-		NDBD_EXIT_SR_OTHERNODEFAILED,
+      progError(__LINE__, NDBD_EXIT_SR_OTHERNODEFAILED,
 		"Unhandled node failure during restart");
     }
     
     if(tStartConf && tStarting){
       // One of other starting nodes has crashed...
-      progError(__LINE__,
-		NDBD_EXIT_SR_OTHERNODEFAILED,
+      progError(__LINE__, NDBD_EXIT_SR_OTHERNODEFAILED,
 		"Unhandled node failure of starting node during restart");
     }
 
     if(tStartConf && tStarted){
       // One of other started nodes has crashed...      
-      progError(__LINE__,
-		NDBD_EXIT_SR_OTHERNODEFAILED,
+      progError(__LINE__, NDBD_EXIT_SR_OTHERNODEFAILED,
 		"Unhandled node failure of started node during restart");
     }
     
@@ -1568,9 +1542,9 @@
 /*----------------------------------------------------------------------*/
 // SENDS APPL_ERROR TO QMGR AND THEN SET A POINTER OUT OF BOUNDS
 /*----------------------------------------------------------------------*/
-void Ndbcntr::systemErrorLab(Signal* signal) 
+void Ndbcntr::systemErrorLab(Signal* signal, int line) 
 {
-  progError(0, 0); /* BUG INSERTION */
+  progError(line, NDBD_EXIT_NDBREQUIRE); /* BUG INSERTION */
   return;
 }//Ndbcntr::systemErrorLab()
 
@@ -1642,7 +1616,7 @@
 void Ndbcntr::execCREATE_TABLE_REF(Signal* signal) 
 {
   jamEntry();
-  progError(0,0);
+  progError(__LINE__,NDBD_EXIT_NDBREQUIRE, "CREATE_TABLE_REF");
   return;
 }//Ndbcntr::execDICTTABREF()
 
@@ -1843,28 +1817,28 @@
 void Ndbcntr::execTCKEYREF(Signal* signal) 
 {
   jamEntry();
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Ndbcntr::execTCKEYREF()
 
 void Ndbcntr::execTCROLLBACKREP(Signal* signal) 
 {
   jamEntry();
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Ndbcntr::execTCROLLBACKREP()
 
 void Ndbcntr::execTCRELEASEREF(Signal* signal) 
 {
   jamEntry();
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Ndbcntr::execTCRELEASEREF()
 
 void Ndbcntr::execTCSEIZEREF(Signal* signal) 
 {
   jamEntry();
-  systemErrorLab(signal);
+  systemErrorLab(signal, __LINE__);
   return;
 }//Ndbcntr::execTCSEIZEREF()
 
@@ -2709,7 +2683,8 @@
       return;
     }
   }
-  block.progError(0,0);
+  block.progError(__LINE__,NDBD_EXIT_NDBREQUIRE,
+		  "UpgradeStartup::execCM_APPCHG");
 }
 
 void
@@ -2722,7 +2697,9 @@
   }
   
   if(node == NdbNodeBitmask::NotFound){
-    cntr.progError(0,0);
+    cntr.progError(__LINE__,NDBD_EXIT_NDBREQUIRE,
+		   "UpgradeStartup::sendCntrMasterReq "
+		   "NdbNodeBitmask::NotFound");
   }
 
   CntrMasterReq * const cntrMasterReq = (CntrMasterReq*)&signal->theData[0];
@@ -2764,5 +2741,6 @@
     }
     }
   }
-  block.progError(0,0);
+  block.progError(__LINE__,NDBD_EXIT_NDBREQUIRE,
+		  "UpgradeStartup::execCNTR_MASTER_REPLY");
 }

--- 1.8/ndb/src/kernel/blocks/ndbfs/Filename.cpp	2005-10-03 20:04:26 +02:00
+++ 1.9/ndb/src/kernel/blocks/ndbfs/Filename.cpp	2005-10-05 16:35:21 +02:00
@@ -51,7 +51,7 @@
   DBUG_ENTER("Filename::init");
 
   if (pFileSystemPath == NULL) {
-    ERROR_SET(fatal, NDBD_EXIT_AFS_NOPATH, ""," Filename::init()");
+    ERROR_SET(fatal, NDBD_EXIT_AFS_NOPATH, "","Missing FileSystemPath");
     return;
   }
 

--- 1.20/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp	2005-10-04 20:05:53 +02:00
+++ 1.21/ndb/src/kernel/blocks/qmgr/QmgrMain.cpp	2005-10-05 16:35:21 +02:00
@@ -2713,7 +2713,7 @@
 
   // If it's known why shutdown occured
   // an error message has been passed to this function
-  progError(line, 0, message);  
+  progError(line, NDBD_EXIT_NDBREQUIRE, message);  
 
   return;
 }//Qmgr::systemErrorLab()

--- 1.5/ndb/include/mgmapi/ndbd_exit_codes.h	2005-10-03 20:41:35 +02:00
+++ 1.6/ndb/include/mgmapi/ndbd_exit_codes.h	2005-10-05 16:35:20 +02:00
@@ -44,8 +44,7 @@
   ndbd_exit_st_unknown = 1,
   ndbd_exit_st_permanent = 2,
   ndbd_exit_st_temporary = 3,
-  ndbd_exit_st_temporary_i = 4,
-  ndbd_exit_st_bug = 5
+  ndbd_exit_st_filesystem_error = 4
 } ndbd_exit_status_enum;
 
 typedef enum
@@ -58,7 +57,8 @@
   ndbd_exit_cl_restart_error = 5,
   ndbd_exit_cl_resource_configuration_error = 6,
   ndbd_exit_cl_filesystem_full_error = 7,
-  ndbd_exit_cl_filesystem_inconsistency_error = 8
+  ndbd_exit_cl_filesystem_inconsistency_error = 8,
+  ndbd_exit_cl_filesystem_limit = 9
 } ndbd_exit_classification_enum;
 
 typedef ndbd_exit_status_enum ndbd_exit_status;
@@ -93,15 +93,24 @@
 #define NDBD_EXIT_INVALID_CONFIG              2350
 #define NDBD_EXIT_OUT_OF_LONG_SIGNAL_MEMORY   2351
 
-/* VM 6000-> */
-#define NDBD_EXIT_WATCHDOG_TERMINATE          6000
-#define NDBD_EXIT_SIGNAL_LOST                 6001
-#define NDBD_EXIT_SIGNAL_LOST_SEND_BUFFER_FULL 6002
-#define NDBD_EXIT_ILLEGAL_SIGNAL              6003
+#define NDBD_EXIT_OS_SIGNAL_RECEIVED          6000
+
+/* VM 6050-> */
+#define NDBD_EXIT_WATCHDOG_TERMINATE          6050
+#define NDBD_EXIT_SIGNAL_LOST                 6051
+#define NDBD_EXIT_SIGNAL_LOST_SEND_BUFFER_FULL 6052
+#define NDBD_EXIT_ILLEGAL_SIGNAL              6053
+
+/* NDBCNTR 6100-> */
+#define NDBD_EXIT_RESTART_TIMEOUT             6100
 
 /* TC  6200-> */
 /* DIH 6300-> */
 #define NDBD_EXIT_MAX_CRASHED_REPLICAS        6300
+#define NDBD_EXIT_MASTER_FAILURE_DURING_NR    6301
+#define NDBD_EXIT_LOST_NODE_GROUP             6302
+#define NDBD_EXIT_NO_RESTORABLE_REPLICA       6303
+
 /* ACC 6600-> */
 #define NDBD_EXIT_SR_OUT_OF_INDEXMEMORY       6600
 /* TUP 6800-> */

--- 1.4/ndb/src/kernel/error/ndbd_exit_codes.c	2005-10-03 20:41:36 +02:00
+++ 1.5/ndb/src/kernel/error/ndbd_exit_codes.c	2005-10-05 16:35:21 +02:00
@@ -30,8 +30,7 @@
 #define XST_U ndbd_exit_st_unknown
 #define XST_P ndbd_exit_st_permanent
 #define XST_R ndbd_exit_st_temporary
-#define XST_I ndbd_exit_st_temporary_i
-#define XST_B ndbd_exit_st_bug
+#define XST_I ndbd_exit_st_filesystem_error
 
 #define XNE ndbd_exit_cl_none
 #define XUE ndbd_exit_cl_unknown
@@ -42,22 +41,32 @@
 #define XCR ndbd_exit_cl_resource_configuration_error
 #define XFF ndbd_exit_cl_filesystem_full_error
 #define XFI ndbd_exit_cl_filesystem_inconsistency_error
+#define XFL ndbd_exit_cl_filesystem_limit
 
 static const ErrStruct errArray[] =
 {
    {NDBD_EXIT_PRGERR, XIE, "Assertion"},
-   {NDBD_EXIT_NODE_NOT_IN_CONFIG, XCE, "Own Node Id not a NDB node"},
-   {NDBD_EXIT_SYSTEM_ERROR, XIE, "System error"},
+   {NDBD_EXIT_NODE_NOT_IN_CONFIG, XCE,
+    "node id in the configuration has the wrong type, (i.e. not an NDB node)"},
+   {NDBD_EXIT_SYSTEM_ERROR, XIE,
+    "System error, node killed during node restart by other node"},
    {NDBD_EXIT_INDEX_NOTINRANGE, XIE, "Index too large"},
-   {NDBD_EXIT_ARBIT_SHUTDOWN, XAE, "Arbitrator shutdown"},
+   {NDBD_EXIT_ARBIT_SHUTDOWN, XAE, "Arbitrator shutdown, "
+    "please investigate error(s) on other node(s)"},
    {NDBD_EXIT_POINTER_NOTINRANGE, XIE, "Pointer too large"},
-   {NDBD_EXIT_SR_OTHERNODEFAILED, XRE, "Node failed during system restart"},
-   {NDBD_EXIT_NODE_NOT_DEAD, XRE, "Node state conflict"},
+   {NDBD_EXIT_SR_OTHERNODEFAILED, XRE, "Another node failed during system "
+    "restart, please investigate error(s) on other node(s)"},
+   {NDBD_EXIT_NODE_NOT_DEAD, XRE, "Internal node state conflict, "
+    "most probably resolved by restarting node again"},
    {NDBD_EXIT_SR_REDOLOG, XFI, "Error while reading the REDO log"},
+   /* Currently unused? */
    {2311, XIE, "Conflict when selecting restart type"},
-   {NDBD_EXIT_NO_MORE_UNDOLOG, XCR, "No more free UNDO log"},
-   {NDBD_EXIT_SR_UNDOLOG, XFI, "Error while reading the datapages and UNDO log"},
-   {NDBD_EXIT_MEMALLOC, XCE, "Memory allocation failure"},
+   {NDBD_EXIT_NO_MORE_UNDOLOG, XCR,
+    "No more free UNDO log, increase UndoIndexBuffer"},
+   {NDBD_EXIT_SR_UNDOLOG, XFI,
+    "Error while reading the datapages and UNDO log"},
+   {NDBD_EXIT_MEMALLOC, XCE, "Memory allocation failure, "
+    "please decrease some configuration parameters"},
    {NDBD_EXIT_BLOCK_JBUFCONGESTION, XIE, "Job buffer congestion"},
    {NDBD_EXIT_TIME_QUEUE_SHORT, XIE, "Error in short time queue"},
    {NDBD_EXIT_TIME_QUEUE_LONG, XIE, "Error in long time queue"},
@@ -68,50 +77,74 @@
    {NDBD_EXIT_NDBREQUIRE, XIE, "Internal program error (failed ndbrequire)"},
    {NDBD_EXIT_NDBASSERT, XIE, "Internal program error (failed ndbassert)"},
    {NDBD_EXIT_ERROR_INSERT, XNE, "Error insert executed" },
+   /* this error message is complemented by additional info when generated */
    {NDBD_EXIT_INVALID_CONFIG, XCE,
     "Invalid Configuration fetched from Management Server" },
 
+   /* this error message is complemented by additional info when
+      generated, such as signal, and text
+   */
+   {NDBD_EXIT_OS_SIGNAL_RECEIVED, XIE, "Error OS signal received"},
+
    /* VM */
-   {NDBD_EXIT_OUT_OF_LONG_SIGNAL_MEMORY,    XCE,
-    "Signal lost, out of long signal memory"},
-   {NDBD_EXIT_WATCHDOG_TERMINATE,           XIE, "WatchDog terminate"},
-   {NDBD_EXIT_SIGNAL_LOST_SEND_BUFFER_FULL, XCE,
-    "Signal lost, out of send buffer memory"},
+   {NDBD_EXIT_OUT_OF_LONG_SIGNAL_MEMORY,    XCR,
+    "Signal lost, out of long signal memory, increase LongMessageBuffer"},
+   {NDBD_EXIT_WATCHDOG_TERMINATE, XIE, "WatchDog terminate, internal error "
+    "or massive overload on the machine running this node"},
+   {NDBD_EXIT_SIGNAL_LOST_SEND_BUFFER_FULL, XCR,
+    "Signal lost, out of send buffer memory, increase SendBufferMemory"},
    {NDBD_EXIT_SIGNAL_LOST,    XIE, "Signal lost (unknown reason)"},
-   {NDBD_EXIT_ILLEGAL_SIGNAL, XCE, "Illegal signal (version mismatch?)"},
+   {NDBD_EXIT_ILLEGAL_SIGNAL, XIE,
+    "Illegal signal (version mismatch a possibility)"},
+
+   /* Ndbcntr */
+   {NDBD_EXIT_RESTART_TIMEOUT, XCE,
+    "Total restart time too long, consider increasing StartFailureTimeout "
+    "or investigate error(s) on other node(s)"},
 
    /* DIH */
-   {NDBD_EXIT_MAX_CRASHED_REPLICAS, XFI, "To many crasched replicas"},
+   {NDBD_EXIT_MAX_CRASHED_REPLICAS, XFL,
+    "Too many crasched replicas (8 consecutive node restart failures)"},
+   {NDBD_EXIT_MASTER_FAILURE_DURING_NR, XRE,
+    "Unhandled master failure during node restart"},
+   {NDBD_EXIT_LOST_NODE_GROUP, XAE,
+    "All nodes in a node group are unavailable"},
+   {NDBD_EXIT_NO_RESTORABLE_REPLICA, XFI,
+    "Unable to find restorable replica"},
 
    /* ACC */
-   {NDBD_EXIT_SR_OUT_OF_INDEXMEMORY, XCE,
-    "Out of index memory during system restart"},
+   {NDBD_EXIT_SR_OUT_OF_INDEXMEMORY, XCR,
+    "Out of index memory during system restart, increase IndexMemory"},
 
    /* TUP */
-   {NDBD_EXIT_SR_OUT_OF_DATAMEMORY, XCE,
-    "Out of data memory during system restart"},
+   {NDBD_EXIT_SR_OUT_OF_DATAMEMORY, XCR,
+    "Out of data memory during system restart, increase DataMemory"},
 
    /* Ndbfs error messages */
-   {NDBD_EXIT_AFS_NOPATH,       XCE, "No file system path"},
+   /* Most codes will have additional info, such as OS error code */
+   {NDBD_EXIT_AFS_NOPATH,       XIE, "No file system path"},
    {2802,                       XIE, "Channel is full"},
    {2803,                       XIE, "No more threads"},
-   {NDBD_EXIT_AFS_PARAMETER,    XCE, "Bad parameter"},
+   {NDBD_EXIT_AFS_PARAMETER,    XIE, "Bad parameter"},
    {NDBD_EXIT_AFS_INVALIDPATH,  XCE, "Illegal file system path"},
-   {NDBD_EXIT_AFS_MAXOPEN,      XCE, "Max number of open files exceeded"},
+   {NDBD_EXIT_AFS_MAXOPEN,      XCR,
+    "Max number of open files exceeded, increase MaxNoOfOpenFiles"},
    {NDBD_EXIT_AFS_ALREADY_OPEN, XIE, "File has already been opened"},
 
    {NDBD_EXIT_AFS_ENVIRONMENT           , XIE, "Environment error using file"},
    {NDBD_EXIT_AFS_TEMP_NO_ACCESS        , XIE, "Temporary on access to file"},
-   {NDBD_EXIT_AFS_DISK_FULL             , XFF, "Filesystem full"},
+   {NDBD_EXIT_AFS_DISK_FULL             , XFF, "The file system full"},
    {NDBD_EXIT_AFS_PERMISSION_DENIED     , XCE, "Permission denied for file"},
    {NDBD_EXIT_AFS_INVALID_PARAM         , XCE, "Invalid parameter for file"},
-   {NDBD_EXIT_AFS_UNKNOWN               , XIE, "Unknown filesystem error"},
-   {NDBD_EXIT_AFS_NO_MORE_RESOURCES     , XIE, "No resources in filesystem"},
+   {NDBD_EXIT_AFS_UNKNOWN               , XIE, "Unknown file system error"},
+   {NDBD_EXIT_AFS_NO_MORE_RESOURCES     , XIE,
+    "System reports no more file system resources"},
    {NDBD_EXIT_AFS_NO_SUCH_FILE          , XFI, "File not found"},
-   {NDBD_EXIT_AFS_READ_UNDERFLOW        , XIE, "Read underflow"},
+   {NDBD_EXIT_AFS_READ_UNDERFLOW        , XFI, "Read underflow"},
 
    /* Sentinel */
-   {0, XUE, "No message slogan found"}
+   {0, XUE,
+    "No message slogan found (please report a bug if you get this error code)"}
 };
 
 typedef struct StatusExitMessage {
@@ -135,8 +168,7 @@
   { XST_U ,"Unknown"},
   { XST_P, "Permanent error, external action needed"},
   { XST_R, "Temporary error, restart node"},
-  { XST_I, "Temporary error, restart node initial"},
-  { XST_B, "Programming error, please report a bug, try restarting node"}
+  { XST_I, "File system error, restart node initial"}
 };
 
 static
@@ -148,13 +180,15 @@
 StatusExitClassification StatusExitClassificationMapping[] = {
   { XST_S, XNE, "No error"},
   { XST_U, XUE, "Unknown"},
-  { XST_R, XIE, "Internal error"},
+  { XST_R, XIE, "Internal error, programming error or missing error message, "
+                "please report a bug"},
   { XST_P, XCE, "Configuration error"},
   { XST_R, XAE, "Arbitration error"},
   { XST_R, XRE, "Restart error"},
   { XST_P, XCR, "Resource configuration error"},
   { XST_P, XFF, "File system full"},
-  { XST_I, XFI, "File system inconsistency error"}
+  { XST_I, XFI, "File system inconsistency error, please report a bug"},
+  { XST_I, XFL, "File system limit exceeded"}
 };
 
 static const int NbExitClassification =

--- 1.56/ndb/src/kernel/main.cpp	2005-10-03 20:04:26 +02:00
+++ 1.57/ndb/src/kernel/main.cpp	2005-10-05 16:35:21 +02:00
@@ -616,11 +616,15 @@
       NdbSleep_MilliSleep(10);
   thread_id= my_thread_id();
   g_eventLogger.info("Received signal %d. Running error handler.", signum);
-  writeChildInfo("signal", signum);
+  childReportSignal(signum);
   // restart the system
-  char errorData[40];
-  BaseString::snprintf(errorData, 40, "Signal %d received", signum);
-  ERROR_SET_SIGNAL(fatal, 0, errorData, __FILE__);
+  char errorData[64], *info= 0;
+#ifdef HAVE_STRSIGNAL
+  info= strsignal(signum);
+#endif
+  BaseString::snprintf(errorData, sizeof(errorData), "Signal %d received; %s", signum,
+		       info ? info : "No text for signal available");
+  ERROR_SET_SIGNAL(fatal, NDBD_EXIT_OS_SIGNAL_RECEIVED, errorData, __FILE__);
 }
 
 extern "C"

--- 1.40/ndb/src/kernel/vm/Configuration.cpp	2005-10-03 20:04:26 +02:00
+++ 1.41/ndb/src/kernel/vm/Configuration.cpp	2005-10-05 16:35:21 +02:00
@@ -308,7 +308,7 @@
        (::access(buf2, W_OK) != 0))
 #endif
   {
-    ERROR_SET(fatal, NDBD_EXIT_AFS_INVALIDPATH, path, " Filename::init()");
+    ERROR_SET(fatal, NDBD_EXIT_AFS_INVALIDPATH, path, param_string);
   }
   
   if (strcmp(&buf2[strlen(buf2) - 1], DIR_SEPARATOR))
Thread
bk commit into 5.0 tree (tomas:1.2013) BUG#11749tomas5 Oct