List:Internals« Previous MessageNext Message »
From:Jim Winstead Date:September 1 2005 12:24am
Subject:bk commit into 5.0 tree (jimw:1.1930)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of jimw. When jimw 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.1930 05/08/31 15:24:06 jimw@stripped +27 -0
  Merge mysql.com:/home/jimw/my/mysql-4.1-clean
  into  mysql.com:/home/jimw/my/mysql-5.0-clean

  sql/item_strfunc.cc
    1.251 05/08/31 15:24:03 jimw@stripped +0 -1
    Resolve conflicts

  sql/ha_innodb.cc
    1.251 05/08/31 15:24:03 jimw@stripped +8 -9
    Resolve conflicts

  ndb/src/ndbapi/ndberror.c
    1.41 05/08/31 15:24:03 jimw@stripped +0 -0
    Resolve conflicts

  tests/mysql_client_test.c
    1.157 05/08/31 15:19:32 jimw@stripped +0 -0
    Auto merged

  sql/sql_table.cc
    1.272 05/08/31 15:19:32 jimw@stripped +0 -0
    Auto merged

  sql/item_sum.cc
    1.159 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/mgmsrv/ConfigInfo.cpp
    1.65 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/mgmclient/CommandInterpreter.cpp
    1.53 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/vm/SimulatedBlock.hpp
    1.13 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/vm/SimulatedBlock.cpp
    1.19 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp
    1.16 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp
    1.13 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbtup/DbtupGen.cpp
    1.17 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbtup/Dbtup.hpp
    1.23 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
    1.72 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dblqh/DblqhInit.cpp
    1.15 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dblqh/Dblqh.hpp
    1.34 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbdih/DbdihMain.cpp
    1.33 05/08/31 15:19:31 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbdict/Dbdict.hpp
    1.15 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbdict/Dbdict.cpp
    1.54 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbacc/DbaccMain.cpp
    1.55 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbacc/DbaccInit.cpp
    1.14 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/dbacc/Dbacc.hpp
    1.21 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

  ndb/src/kernel/blocks/backup/BackupInit.cpp
    1.12 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

  mysql-test/t/system_mysql_db_fix.test
    1.15 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

  mysql-test/t/func_gconcat.test
    1.32 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

  mysql-test/r/func_gconcat.result
    1.42 05/08/31 15:19:30 jimw@stripped +0 -0
    Auto merged

# 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:	jimw
# Host:	rama.(none)
# Root:	/home/jimw/my/mysql-5.0-clean/RESYNC

--- 1.250/sql/item_strfunc.cc	2005-08-21 03:05:08 -07:00
+++ 1.251/sql/item_strfunc.cc	2005-08-31 15:24:03 -07:00
@@ -461,11 +461,11 @@
   struct st_des_keyblock keyblock;
   struct st_des_keyschedule keyschedule;
   String *res= args[0]->val_str(str);
-  uint length= 0, tail;
+  uint length,tail;
 
-  if ((null_value=args[0]->null_value))
+  if ((null_value= args[0]->null_value))
     return 0;
-  length=res->length();
+  length= res->length();
   if (length < 9 || (length % 8) != 1 || !((*res)[0] & 128))
     return res;				// Skip decryption if not encrypted
 

--- 1.158/sql/item_sum.cc	2005-08-12 03:54:35 -07:00
+++ 1.159/sql/item_sum.cc	2005-08-31 15:19:31 -07:00
@@ -2983,7 +2983,7 @@
   }
 
   thd->allow_sum_func= 0;
-  maybe_null= 0;
+  maybe_null= 1;
 
   /*
     Fix fields for select list and ORDER clause
@@ -2995,8 +2995,6 @@
          args[i]->fix_fields(thd, args + i)) ||
         args[i]->check_cols(1))
       return TRUE;
-    if (i < arg_count_field)
-      maybe_null|= args[i]->maybe_null;
   }
 
   if (agg_item_charsets(collation, func_name(),

--- 1.271/sql/sql_table.cc	2005-08-29 23:18:12 -07:00
+++ 1.272/sql/sql_table.cc	2005-08-31 15:19:32 -07:00
@@ -3241,7 +3241,7 @@
   Field **f_ptr,*field;
   for (f_ptr=table->field ; (field= *f_ptr) ; f_ptr++)
   {
-    /* Check if field should be droped */
+    /* Check if field should be dropped */
     Alter_drop *drop;
     drop_it.rewind();
     while ((drop=drop_it++))

--- 1.64/ndb/src/mgmsrv/ConfigInfo.cpp	2005-07-26 01:14:27 -07:00
+++ 1.65/ndb/src/mgmsrv/ConfigInfo.cpp	2005-08-31 15:19:31 -07:00
@@ -2148,7 +2148,17 @@
 /****************************************************************************
  * Ctor
  ****************************************************************************/
-static void require(bool v) { if(!v) abort();}
+static void require(bool v)
+{
+  if(!v)
+  {
+#ifndef DBUG_OFF
+    abort();
+#else
+    exit(-1);
+#endif
+  }
+}
 
 ConfigInfo::ConfigInfo()
   : m_info(true), m_systemDefaults(true)
@@ -2289,7 +2299,7 @@
  ****************************************************************************/
 inline void warning(const char * src, const char * arg){
   ndbout << "Illegal call to ConfigInfo::" << src << "() - " <<
arg << endl;
-  abort();
+  require(false);
 }
 
 const Properties * 
@@ -3429,7 +3439,7 @@
     }
     case PropertiesType_Properties:
     default:
-      abort();
+      ::require(false);
     }
   }
   return true;
@@ -3441,7 +3451,7 @@
 saveInConfigValues(InitConfigFileParser::Context & ctx, const char * data){
   const Properties * sec;
   if(!ctx.m_currentInfo->get(ctx.fname, &sec)){
-    abort();
+    require(false);
     return false;
   }
   
@@ -3512,7 +3522,7 @@
 	break;
       }
       default:
-	abort();
+	require(false);
       }
       require(ok);
     }

--- 1.11/ndb/src/kernel/blocks/backup/BackupInit.cpp	2005-04-22 00:09:16 -07:00
+++ 1.12/ndb/src/kernel/blocks/backup/BackupInit.cpp	2005-08-31 15:19:30 -07:00
@@ -150,16 +150,16 @@
   addRecSignal(GSN_DI_FCOUNTCONF, &Backup::execDI_FCOUNTCONF);
   addRecSignal(GSN_DIGETPRIMCONF, &Backup::execDIGETPRIMCONF);
 
-  addRecSignal(GSN_FSOPENREF, &Backup::execFSOPENREF);
+  addRecSignal(GSN_FSOPENREF, &Backup::execFSOPENREF, true);
   addRecSignal(GSN_FSOPENCONF, &Backup::execFSOPENCONF);
 
-  addRecSignal(GSN_FSCLOSEREF, &Backup::execFSCLOSEREF);
+  addRecSignal(GSN_FSCLOSEREF, &Backup::execFSCLOSEREF, true);
   addRecSignal(GSN_FSCLOSECONF, &Backup::execFSCLOSECONF);
 
-  addRecSignal(GSN_FSAPPENDREF, &Backup::execFSAPPENDREF);
+  addRecSignal(GSN_FSAPPENDREF, &Backup::execFSAPPENDREF, true);
   addRecSignal(GSN_FSAPPENDCONF, &Backup::execFSAPPENDCONF);
 
-  addRecSignal(GSN_FSREMOVEREF, &Backup::execFSREMOVEREF);
+  addRecSignal(GSN_FSREMOVEREF, &Backup::execFSREMOVEREF, true);
   addRecSignal(GSN_FSREMOVECONF, &Backup::execFSREMOVECONF);
 
   /*****/

--- 1.20/ndb/src/kernel/blocks/dbacc/Dbacc.hpp	2005-08-22 01:59:20 -07:00
+++ 1.21/ndb/src/kernel/blocks/dbacc/Dbacc.hpp	2005-08-31 15:19:30 -07:00
@@ -905,17 +905,12 @@
   void execACC_TO_REQ(Signal* signal);
   void execACC_LOCKREQ(Signal* signal);
   void execFSOPENCONF(Signal* signal);
-  void execFSOPENREF(Signal* signal);
   void execFSCLOSECONF(Signal* signal);
-  void execFSCLOSEREF(Signal* signal);
   void execFSWRITECONF(Signal* signal);
-  void execFSWRITEREF(Signal* signal);
   void execFSREADCONF(Signal* signal);
-  void execFSREADREF(Signal* signal);
   void execNDB_STTOR(Signal* signal);
   void execDROP_TAB_REQ(Signal* signal);
   void execFSREMOVECONF(Signal* signal);
-  void execFSREMOVEREF(Signal* signal);
   void execREAD_CONFIG_REQ(Signal* signal);
   void execSET_VAR_REQ(Signal* signal);
   void execDUMP_STATE_ORD(Signal* signal);

--- 1.13/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp	2005-08-22 01:59:20 -07:00
+++ 1.14/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp	2005-08-31 15:19:30 -07:00
@@ -188,17 +188,12 @@
   addRecSignal(GSN_ACC_TO_REQ, &Dbacc::execACC_TO_REQ);
   addRecSignal(GSN_ACC_LOCKREQ, &Dbacc::execACC_LOCKREQ);
   addRecSignal(GSN_FSOPENCONF, &Dbacc::execFSOPENCONF);
-  addRecSignal(GSN_FSOPENREF, &Dbacc::execFSOPENREF);
   addRecSignal(GSN_FSCLOSECONF, &Dbacc::execFSCLOSECONF);
-  addRecSignal(GSN_FSCLOSEREF, &Dbacc::execFSCLOSEREF);
   addRecSignal(GSN_FSWRITECONF, &Dbacc::execFSWRITECONF);
-  addRecSignal(GSN_FSWRITEREF, &Dbacc::execFSWRITEREF);
   addRecSignal(GSN_FSREADCONF, &Dbacc::execFSREADCONF);
-  addRecSignal(GSN_FSREADREF, &Dbacc::execFSREADREF);
   addRecSignal(GSN_NDB_STTOR, &Dbacc::execNDB_STTOR);
   addRecSignal(GSN_DROP_TAB_REQ, &Dbacc::execDROP_TAB_REQ);
   addRecSignal(GSN_FSREMOVECONF, &Dbacc::execFSREMOVECONF);
-  addRecSignal(GSN_FSREMOVEREF, &Dbacc::execFSREMOVEREF);
   addRecSignal(GSN_READ_CONFIG_REQ, &Dbacc::execREAD_CONFIG_REQ, true);
   addRecSignal(GSN_SET_VAR_REQ,  &Dbacc::execSET_VAR_REQ);
 

--- 1.54/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2005-08-22 01:59:21 -07:00
+++ 1.55/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp	2005-08-31 15:19:30 -07:00
@@ -251,15 +251,6 @@
   return;
 }//Dbacc::execFSCLOSECONF()
 
-/* ******************--------------------------------------------------------------- */
-/* FSCLOSEREF                                          OPENFILE CONF                 */
-/* ******************------------------------------+                                 */
-/*   SENDER: FS,     LEVEL B       */
-void Dbacc::execFSCLOSEREF(Signal* signal) 
-{
-  jamEntry();
-  ndbrequire(false);
-}//Dbacc::execFSCLOSEREF()
 
 /* ******************--------------------------------------------------------------- */
 /* FSOPENCONF                                         OPENFILE CONF                  */
@@ -307,15 +298,6 @@
   return;
 }//Dbacc::execFSOPENCONF()
 
-/* ******************--------------------------------------------------------------- */
-/* FSOPENREF                                         OPENFILE REF                    */
-/* ******************------------------------------+                                 */
-/*   SENDER: FS,     LEVEL B       */
-void Dbacc::execFSOPENREF(Signal* signal) 
-{
-  jamEntry();
-  ndbrequire(false);
-}//Dbacc::execFSOPENREF()
 
 /* ******************--------------------------------------------------------------- */
 /* FSREADCONF                                          OPENFILE CONF                 */
@@ -369,16 +351,6 @@
   return;
 }//Dbacc::execFSREADCONF()
 
-/* ******************--------------------------------------------------------------- */
-/* FSREADRREF                                          OPENFILE CONF                 */
-/* ******************------------------------------+                                 */
-/*   SENDER: FS,     LEVEL B       */
-void Dbacc::execFSREADREF(Signal* signal) 
-{
-  jamEntry();
-  progError(0, __LINE__, "Read of file refused");
-  return;
-}//Dbacc::execFSREADREF()
 
 /* ******************--------------------------------------------------------------- */
 /* FSWRITECONF                                         OPENFILE CONF                 */
@@ -482,16 +454,6 @@
   return;
 }//Dbacc::execFSWRITECONF()
 
-/* ******************--------------------------------------------------------------- */
-/* FSWRITEREF                                          OPENFILE CONF                 */
-/* ******************------------------------------+                                 */
-/*   SENDER: FS,     LEVEL B       */
-void Dbacc::execFSWRITEREF(Signal* signal) 
-{
-  jamEntry();
-  progError(0, __LINE__, "Write to file refused");
-  return;
-}//Dbacc::execFSWRITEREF()
 
 /* ------------------------------------------------------------------------- */
 /* ------------------------------------------------------------------------- */
@@ -1436,10 +1398,6 @@
   tabPtr.p->tabUserRef = 0;
 }//Dbacc::execFSREMOVECONF()
 
-void Dbacc::execFSREMOVEREF(Signal* signal)
-{
-  ndbrequire(false);
-}//Dbacc::execFSREMOVEREF()
 
 /* -------------------------------------------------------------------------- */
 /* ADDFRAGTOTAB                                                               */

--- 1.53/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2005-08-29 23:58:34 -07:00
+++ 1.54/ndb/src/kernel/blocks/dbdict/Dbdict.cpp	2005-08-31 15:19:30 -07:00
@@ -400,14 +400,6 @@
   }//switch
 }//execFSCLOSECONF()
 
-/* ---------------------------------------------------------------- */
-// A close file was refused.
-/* ---------------------------------------------------------------- */
-void Dbdict::execFSCLOSEREF(Signal* signal) 
-{
-  jamEntry();
-  progError(0, 0);
-}//execFSCLOSEREF()
 
 /* ---------------------------------------------------------------- */
 // A file was successfully opened.
@@ -470,17 +462,21 @@
   c_fsConnectRecordPool.getPtr(fsPtr, fsRef->userPointer);
   switch (fsPtr.p->fsState) {
   case FsConnectRecord::OPEN_READ_SCHEMA1:
+    jam();
     openReadSchemaRef(signal, fsPtr);
-    break;
+    return;
   case FsConnectRecord::OPEN_READ_TAB_FILE1:
     jam();
     openReadTableRef(signal, fsPtr);
-    break;
+    return;
   default:
-    jamLine((fsPtr.p->fsState & 0xFFF));
-    ndbrequire(false);
     break;
   }//switch
+  {
+    char msg[100];
+    sprintf(msg, "File system open failed during FsConnectRecord state %d",
(Uint32)fsPtr.p->fsState);
+    fsRefError(signal,__LINE__,msg);
+  }
 }//execFSOPENREF()
 
 /* ---------------------------------------------------------------- */
@@ -520,17 +516,21 @@
   c_fsConnectRecordPool.getPtr(fsPtr, fsRef->userPointer);
   switch (fsPtr.p->fsState) {
   case FsConnectRecord::READ_SCHEMA1:
+    jam();
     readSchemaRef(signal, fsPtr);
-    break;
+    return;
   case FsConnectRecord::READ_TAB_FILE1:
     jam();
     readTableRef(signal, fsPtr);
-    break;
+    return;
   default:
-    jamLine((fsPtr.p->fsState & 0xFFF));
-    ndbrequire(false);
     break;
   }//switch
+  {
+    char msg[100];
+    sprintf(msg, "File system read failed during FsConnectRecord state %d",
(Uint32)fsPtr.p->fsState);
+    fsRefError(signal,__LINE__,msg);
+  }
 }//execFSREADREF()
 
 /* ---------------------------------------------------------------- */
@@ -557,14 +557,6 @@
   }//switch
 }//execFSWRITECONF()
 
-/* ---------------------------------------------------------------- */
-// A write file was refused.
-/* ---------------------------------------------------------------- */
-void Dbdict::execFSWRITEREF(Signal* signal) 
-{
-  jamEntry();
-  progError(0, 0);
-}//execFSWRITEREF()
 
 /* ---------------------------------------------------------------- */
 // Routines to handle Read/Write of Table Files
@@ -1327,13 +1319,11 @@
   addRecSignal(GSN_DICTSTARTREQ, &Dbdict::execDICTSTARTREQ);
   addRecSignal(GSN_READ_NODESCONF, &Dbdict::execREAD_NODESCONF);
   addRecSignal(GSN_FSOPENCONF, &Dbdict::execFSOPENCONF);
-  addRecSignal(GSN_FSOPENREF, &Dbdict::execFSOPENREF);
+  addRecSignal(GSN_FSOPENREF, &Dbdict::execFSOPENREF, true);
   addRecSignal(GSN_FSCLOSECONF, &Dbdict::execFSCLOSECONF);
-  addRecSignal(GSN_FSCLOSEREF, &Dbdict::execFSCLOSEREF);
   addRecSignal(GSN_FSWRITECONF, &Dbdict::execFSWRITECONF);
-  addRecSignal(GSN_FSWRITEREF, &Dbdict::execFSWRITEREF);
   addRecSignal(GSN_FSREADCONF, &Dbdict::execFSREADCONF);
-  addRecSignal(GSN_FSREADREF, &Dbdict::execFSREADREF);
+  addRecSignal(GSN_FSREADREF, &Dbdict::execFSREADREF, true);
   addRecSignal(GSN_LQHFRAGCONF, &Dbdict::execLQHFRAGCONF);
   addRecSignal(GSN_LQHADDATTCONF, &Dbdict::execLQHADDATTCONF);
   addRecSignal(GSN_LQHADDATTREF, &Dbdict::execLQHADDATTREF);

--- 1.14/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2005-08-18 05:09:06 -07:00
+++ 1.15/ndb/src/kernel/blocks/dbdict/Dbdict.hpp	2005-08-31 15:19:30 -07:00
@@ -467,13 +467,11 @@
   void execSCHEMA_INFOCONF(Signal* signal);
   void execREAD_NODESCONF(Signal* signal);
   void execFSCLOSECONF(Signal* signal);
-  void execFSCLOSEREF(Signal* signal);
   void execFSOPENCONF(Signal* signal);
   void execFSOPENREF(Signal* signal);
   void execFSREADCONF(Signal* signal);
   void execFSREADREF(Signal* signal);
   void execFSWRITECONF(Signal* signal);
-  void execFSWRITEREF(Signal* signal);
   void execNDB_STTOR(Signal* signal);
   void execREAD_CONFIG_REQ(Signal* signal);
   void execSTTOR(Signal* signal);

--- 1.32/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp	2005-08-18 05:09:06 -07:00
+++ 1.33/ndb/src/kernel/blocks/dbdih/DbdihMain.cpp	2005-08-31 15:19:31 -07:00
@@ -782,29 +782,36 @@
   filePtr.p->reqStatus = FileRecord::IDLE;
   switch (status) {
   case FileRecord::CLOSING_GCP:
-    ndbrequire(false);
+    jam();
     break;
   case FileRecord::CLOSING_GCP_CRASH:
     jam();
     closingGcpCrashLab(signal, filePtr);
-    break;
+    return;
   case FileRecord::CLOSING_TABLE_CRASH:
     jam();
     closingTableCrashLab(signal, filePtr);
-    break;
+    return;
   case FileRecord::CLOSING_TABLE_SR:
-    ndbrequire(false);
+    jam();
     break;
   case FileRecord::TABLE_CLOSE:
-    ndbrequire(false);
+    jam();
     break;
   case FileRecord::TABLE_CLOSE_DELETE:
-    ndbrequire(false);
+    jam();
     break;
   default:
-    ndbrequire(false);
+    jam();
     break;
+
   }//switch
+  {
+    char msg[100];
+    sprintf(msg, "File system close failed during FileRecord status %d", (Uint32)status);
+    fsRefError(signal,__LINE__,msg);
+  }
+
   return;
 }//Dbdih::execFSCLOSEREF()
 
@@ -868,34 +875,39 @@
     /*   WE DID NOT MANAGE TO CREATE A GLOBAL CHECKPOINT FILE. SERIOUS ERROR */
     /*   WHICH CAUSES A SYSTEM RESTART.                                      */
     /* --------------------------------------------------------------------- */
-    ndbrequire(false);
+    jam();
     break;
   case FileRecord::OPENING_COPY_GCI:
     jam();
     openingCopyGciErrorLab(signal, filePtr);
-    break;
+    return;
   case FileRecord::CREATING_COPY_GCI:
-    ndbrequire(false);
+    jam();
     break;
   case FileRecord::OPENING_GCP:
     jam();
     openingGcpErrorLab(signal, filePtr);
-    break;
+    return;
   case FileRecord::OPENING_TABLE:
     jam();
     openingTableErrorLab(signal, filePtr);
-    break;
+    return;
   case FileRecord::TABLE_CREATE:
-    ndbrequire(false);
+    jam();
     break;
   case FileRecord::TABLE_OPEN_FOR_DELETE:
     jam();
     tableDeleteLab(signal, filePtr);
-    break;
+    return;
   default:
-    ndbrequire(false);
+    jam();
     break;
   }//switch
+  {
+    char msg[100];
+    sprintf(msg, "File system open failed during FileRecord status %d", (Uint32)status);
+    fsRefError(signal,__LINE__,msg);
+  }
   return;
 }//Dbdih::execFSOPENREF()
 
@@ -935,16 +947,19 @@
   case FileRecord::READING_GCP:
     jam();
     readingGcpErrorLab(signal, filePtr);
-    break;
+    return;
   case FileRecord::READING_TABLE:
     jam();
     readingTableErrorLab(signal, filePtr);
-    break;
+    return;
   default:
-    ndbrequire(false);
     break;
   }//switch
-  return;
+  {
+    char msg[100];
+    sprintf(msg, "File system read failed during FileRecord status %d", (Uint32)status);
+    fsRefError(signal,__LINE__,msg);
+  }
 }//Dbdih::execFSREADREF()
 
 void Dbdih::execFSWRITECONF(Signal* signal) 
@@ -989,22 +1004,27 @@
     /*  EVEN CREATING THE FILE DID NOT WORK. WE WILL THEN CRASH.             */
     /*  ERROR IN WRITING FILE. WE WILL NOT CONTINUE FROM HERE.               */
     /* --------------------------------------------------------------------- */
-    ndbrequire(false);
+    jam();
     break;
   case FileRecord::WRITE_INIT_GCP:
     /* --------------------------------------------------------------------- */
     /*   AN ERROR OCCURRED IN WRITING A GCI FILE WHICH IS A SERIOUS ERROR    */
     /*   THAT CAUSE A SYSTEM RESTART.                                        */
     /* --------------------------------------------------------------------- */
-    ndbrequire(false);
+    jam();
     break;
   case FileRecord::TABLE_WRITE:
-    ndbrequire(false);
+    jam();
     break;
   default:
-    ndbrequire(false);
+    jam();
     break;
   }//switch
+  {
+    char msg[100];
+    sprintf(msg, "File system write failed during FileRecord status %d", (Uint32)status);
+    fsRefError(signal,__LINE__,msg);
+  }
   return;
 }//Dbdih::execFSWRITEREF()
 

--- 1.33/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2005-08-22 01:59:21 -07:00
+++ 1.34/ndb/src/kernel/blocks/dblqh/Dblqh.hpp	2005-08-31 15:19:31 -07:00
@@ -2178,9 +2178,7 @@
   void execTUP_SRREF(Signal* signal);
   void execGCP_SAVEREQ(Signal* signal);
   void execFSOPENCONF(Signal* signal);
-  void execFSOPENREF(Signal* signal);
   void execFSCLOSECONF(Signal* signal);
-  void execFSCLOSEREF(Signal* signal);
   void execFSWRITECONF(Signal* signal);
   void execFSWRITEREF(Signal* signal);
   void execFSREADCONF(Signal* signal);
@@ -2189,7 +2187,6 @@
   void execSET_VAR_REQ(Signal* signal);
   void execTIME_SIGNAL(Signal* signal);
   void execFSSYNCCONF(Signal* signal);
-  void execFSSYNCREF(Signal* signal);
 
   void execALTER_TAB_REQ(Signal* signal);
   void execALTER_TAB_CONF(Signal* signal);

--- 1.14/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp	2005-01-19 00:26:43 -08:00
+++ 1.15/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp	2005-08-31 15:19:31 -07:00
@@ -309,18 +309,15 @@
   addRecSignal(GSN_TUP_SRREF, &Dblqh::execTUP_SRREF);
   addRecSignal(GSN_GCP_SAVEREQ, &Dblqh::execGCP_SAVEREQ);
   addRecSignal(GSN_FSOPENCONF, &Dblqh::execFSOPENCONF);
-  addRecSignal(GSN_FSOPENREF, &Dblqh::execFSOPENREF);
   addRecSignal(GSN_FSCLOSECONF, &Dblqh::execFSCLOSECONF);
-  addRecSignal(GSN_FSCLOSEREF, &Dblqh::execFSCLOSEREF);
   addRecSignal(GSN_FSWRITECONF, &Dblqh::execFSWRITECONF);
-  addRecSignal(GSN_FSWRITEREF, &Dblqh::execFSWRITEREF);
+  addRecSignal(GSN_FSWRITEREF, &Dblqh::execFSWRITEREF, true);
   addRecSignal(GSN_FSREADCONF, &Dblqh::execFSREADCONF);
-  addRecSignal(GSN_FSREADREF, &Dblqh::execFSREADREF);
+  addRecSignal(GSN_FSREADREF, &Dblqh::execFSREADREF, true);
   addRecSignal(GSN_ACC_ABORTCONF, &Dblqh::execACC_ABORTCONF);
   addRecSignal(GSN_SET_VAR_REQ,  &Dblqh::execSET_VAR_REQ);
   addRecSignal(GSN_TIME_SIGNAL,  &Dblqh::execTIME_SIGNAL);
   addRecSignal(GSN_FSSYNCCONF,  &Dblqh::execFSSYNCCONF);
-  addRecSignal(GSN_FSSYNCREF,  &Dblqh::execFSSYNCREF);
   addRecSignal(GSN_REMOVE_MARKER_ORD, &Dblqh::execREMOVE_MARKER_ORD);
 
   //addRecSignal(GSN_DROP_TAB_REQ, &Dblqh::execDROP_TAB_REQ);

--- 1.71/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-08-22 01:59:21 -07:00
+++ 1.72/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp	2005-08-31 15:19:31 -07:00
@@ -11765,14 +11765,6 @@
   ccurrentGcprec = RNIL;
 }//Dblqh::execFSSYNCCONF()
 
-void
-Dblqh::execFSSYNCREF(Signal* signal)
-{
-  jamEntry();
-  systemErrorLab(signal);
-  return;
-}//Dblqh::execFSSYNCREF()
-
 
 /* ######################################################################### */
 /* #######                            FILE HANDLING MODULE           ####### */
@@ -11843,16 +11835,6 @@
   }//switch
 }//Dblqh::execFSCLOSECONF()
 
-/* ************>> */
-/*  FSCLOSEREF  > */
-/* ************>> */
-void Dblqh::execFSCLOSEREF(Signal* signal) 
-{
-  jamEntry();
-  terrorCode = signal->theData[1];
-  systemErrorLab(signal);
-  return;
-}//Dblqh::execFSCLOSEREF()
 
 /* ************>> */
 /*  FSOPENCONF  > */
@@ -11941,16 +11923,6 @@
   }//switch
 }//Dblqh::execFSOPENCONF()
 
-/* ************> */
-/*  FSOPENREF  > */
-/* ************> */
-void Dblqh::execFSOPENREF(Signal* signal) 
-{
-  jamEntry();
-  terrorCode = signal->theData[1];
-  systemErrorLab(signal);
-  return;
-}//Dblqh::execFSOPENREF()
 
 /* ************>> */
 /*  FSREADCONF  > */
@@ -12028,60 +12000,43 @@
   jamEntry();
   lfoPtr.i = signal->theData[0];
   ptrCheckGuard(lfoPtr, clfoFileSize, logFileOperationRecord);
-  terrorCode = signal->theData[1];
   switch (lfoPtr.p->lfoState) {
   case LogFileOperationRecord::READ_SR_LAST_MBYTE:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   case LogFileOperationRecord::READ_SR_FRONTPAGE:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   case LogFileOperationRecord::READ_SR_LAST_FILE:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   case LogFileOperationRecord::READ_SR_NEXT_FILE:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   case LogFileOperationRecord::READ_EXEC_SR:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   case LogFileOperationRecord::READ_EXEC_LOG:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   case LogFileOperationRecord::READ_SR_FOURTH_PHASE:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   case LogFileOperationRecord::READ_SR_FOURTH_ZERO:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   case LogFileOperationRecord::READ_SR_INVALIDATE_PAGES:
     jam()
-    systemErrorLab(signal);
-    return;
     break;
   default:
     jam();
-    systemErrorLab(signal);
-    return;
     break;
   }//switch
-  return;
+  {
+    char msg[100];
+    sprintf(msg, "File system read failed during LogFileOperationRecord state %d",
(Uint32)lfoPtr.p->lfoState);
+    fsRefError(signal,__LINE__,msg);
+  }
 }//Dblqh::execFSREADREF()
 
 /* *************** */
@@ -12162,49 +12117,43 @@
   switch (lfoPtr.p->lfoState) {
   case LogFileOperationRecord::WRITE_PAGE_ZERO:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::LAST_WRITE_IN_FILE:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::INIT_WRITE_AT_END:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::INIT_FIRST_PAGE:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::WRITE_GCI_ZERO:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::WRITE_DIRTY:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::WRITE_INIT_MBYTE:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::ACTIVE_WRITE_LOG:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::FIRST_PAGE_WRITE_IN_LOGFILE:
     jam();
-    systemErrorLab(signal);
     break;
   case LogFileOperationRecord::WRITE_SR_INVALIDATE_PAGES:
     jam();
     systemErrorLab(signal);
-    break;
   default:
     jam();
-    systemErrorLab(signal);
     break;
   }//switch
+  {
+    char msg[100];
+    sprintf(msg, "File system write failed during LogFileOperationRecord state %d",
(Uint32)lfoPtr.p->lfoState);
+    fsRefError(signal,__LINE__,msg);
+  }
 }//Dblqh::execFSWRITEREF()
 
 

--- 1.22/ndb/src/kernel/blocks/dbtup/Dbtup.hpp	2005-04-24 11:39:40 -07:00
+++ 1.23/ndb/src/kernel/blocks/dbtup/Dbtup.hpp	2005-08-31 15:19:31 -07:00
@@ -1108,20 +1108,15 @@
   void execTUP_SRREQ(Signal* signal);
   void execTUP_PREPLCPREQ(Signal* signal);
   void execFSOPENCONF(Signal* signal);
-  void execFSOPENREF(Signal* signal);
   void execFSCLOSECONF(Signal* signal);
-  void execFSCLOSEREF(Signal* signal);
   void execFSWRITECONF(Signal* signal);
-  void execFSWRITEREF(Signal* signal);
   void execFSREADCONF(Signal* signal);
-  void execFSREADREF(Signal* signal);
   void execNDB_STTOR(Signal* signal);
   void execREAD_CONFIG_REQ(Signal* signal);
   void execSET_VAR_REQ(Signal* signal);
   void execDROP_TAB_REQ(Signal* signal);
   void execALTER_TAB_REQ(Signal* signal);
   void execFSREMOVECONF(Signal* signal);
-  void execFSREMOVEREF(Signal* signal);
   void execTUP_ALLOCREQ(Signal* signal);
   void execTUP_DEALLOCREQ(Signal* signal);
   void execTUP_WRITELOG_REQ(Signal* signal);

--- 1.16/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp	2005-07-25 04:23:29 -07:00
+++ 1.17/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp	2005-08-31 15:19:31 -07:00
@@ -25,7 +25,6 @@
 #include <AttributeHeader.hpp>
 #include <Interpreter.hpp>
 #include <signaldata/FsConf.hpp>
-#include <signaldata/FsRef.hpp>
 #include <signaldata/FsRemoveReq.hpp>
 #include <signaldata/TupCommit.hpp>
 #include <signaldata/TupKey.hpp>
@@ -117,13 +116,9 @@
   addRecSignal(GSN_TUP_SRREQ, &Dbtup::execTUP_SRREQ);
   addRecSignal(GSN_TUP_PREPLCPREQ, &Dbtup::execTUP_PREPLCPREQ);
   addRecSignal(GSN_FSOPENCONF, &Dbtup::execFSOPENCONF);
-  addRecSignal(GSN_FSOPENREF, &Dbtup::execFSOPENREF);
   addRecSignal(GSN_FSCLOSECONF, &Dbtup::execFSCLOSECONF);
-  addRecSignal(GSN_FSCLOSEREF, &Dbtup::execFSCLOSEREF);
   addRecSignal(GSN_FSWRITECONF, &Dbtup::execFSWRITECONF);
-  addRecSignal(GSN_FSWRITEREF, &Dbtup::execFSWRITEREF);
   addRecSignal(GSN_FSREADCONF, &Dbtup::execFSREADCONF);
-  addRecSignal(GSN_FSREADREF, &Dbtup::execFSREADREF);
   addRecSignal(GSN_NDB_STTOR, &Dbtup::execNDB_STTOR);
   addRecSignal(GSN_READ_CONFIG_REQ, &Dbtup::execREAD_CONFIG_REQ, true);
   addRecSignal(GSN_SET_VAR_REQ,  &Dbtup::execSET_VAR_REQ);
@@ -133,7 +128,6 @@
   addRecSignal(GSN_DROP_TRIG_REQ,  &Dbtup::execDROP_TRIG_REQ);
 
   addRecSignal(GSN_DROP_TAB_REQ, &Dbtup::execDROP_TAB_REQ);
-  addRecSignal(GSN_FSREMOVEREF, &Dbtup::execFSREMOVEREF);
   addRecSignal(GSN_FSREMOVECONF, &Dbtup::execFSREMOVECONF);
 
   addRecSignal(GSN_TUP_ALLOCREQ, &Dbtup::execTUP_ALLOCREQ);
@@ -268,12 +262,6 @@
   releasePendingFileOpenInfoRecord(pfoPtr);
 }//Dbtup::execFSCLOSECONF()
 
-void Dbtup::execFSCLOSEREF(Signal* signal) 
-{
-  ljamEntry();
-  ndbrequire(false);
-}//Dbtup::execFSCLOSEREF()
-
 void Dbtup::execFSOPENCONF(Signal* signal) 
 {
   PendingFileOpenInfoPtr pfoPtr;
@@ -368,12 +356,6 @@
   releasePendingFileOpenInfoRecord(pfoPtr);
 }//Dbtup::execFSOPENCONF()
 
-void Dbtup::execFSOPENREF(Signal* signal) 
-{
-  ljamEntry();
-  ndbrequire(false);
-}//Dbtup::execFSOPENREF()
-
 void Dbtup::execFSREADCONF(Signal* signal) 
 {
   DiskBufferSegmentInfoPtr dbsiPtr;
@@ -429,12 +411,6 @@
   }//switch
 }//Dbtup::execFSREADCONF()
 
-void Dbtup::execFSREADREF(Signal* signal) 
-{
-  ljamEntry();
-  ndbrequire(false);
-}//Dbtup::execFSREADREF()
-
 void Dbtup::execFSWRITECONF(Signal* signal) 
 {
   DiskBufferSegmentInfoPtr dbsiPtr;
@@ -482,12 +458,6 @@
   }//switch
   return;
 }//Dbtup::execFSWRITECONF()
-
-void Dbtup::execFSWRITEREF(Signal* signal) 
-{
-  ljamEntry();
-  ndbrequire(false);
-}//Dbtup::execFSWRITEREF()
 
 void Dbtup::execCONTINUEB(Signal* signal) 
 {

--- 1.12/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp	2004-12-26 13:34:25 -08:00
+++ 1.13/ndb/src/kernel/blocks/dbtup/DbtupMeta.cpp	2005-08-31 15:19:31 -07:00
@@ -702,10 +702,3 @@
   initTab(tabPtr.p);
 }//Dbtup::execFSREMOVECONF()
 
-void Dbtup::execFSREMOVEREF(Signal* signal)
-{
-  ljamEntry();
-  ndbrequire(false);
-}//Dbtup::execFSREMOVEREF()
-
-

--- 1.15/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp	2005-08-18 05:09:08 -07:00
+++ 1.16/ndb/src/kernel/blocks/ndbcntr/NdbcntrMain.cpp	2005-08-31 15:19:31 -07:00
@@ -144,6 +144,7 @@
   const SystemError * const sysErr = (SystemError *)signal->getDataPtr();
   char buf[100];
   int killingNode = refToNode(sysErr->errorRef);
+  Uint32 data1 = sysErr->data1;
   
   jamEntry();
   switch (sysErr->errorCode){
@@ -178,8 +179,9 @@
   case SystemError::CopyFragRefError:
     BaseString::snprintf(buf, sizeof(buf), 
 	     "Node %d killed this node because "
-	     "it could not copy a fragment during node restart",     
-	     killingNode);
+	     "it could not copy a fragment during node restart. "
+	     "Copy fragment error code: %u.",
+	     killingNode, data1);
     break;
 
   default:
@@ -2389,12 +2391,6 @@
   sendSignal(NDBFS_REF, GSN_FSREMOVEREQ, signal, 
              FsRemoveReq::SignalLength, JBA);
   c_fsRemoveCount++;
-}
-
-void
-Ndbcntr::execFSREMOVEREF(Signal* signal){
-  jamEntry();
-  ndbrequire(0);
 }
 
 void

--- 1.18/ndb/src/kernel/vm/SimulatedBlock.cpp	2005-08-22 01:59:21 -07:00
+++ 1.19/ndb/src/kernel/vm/SimulatedBlock.cpp	2005-08-31 15:19:31 -07:00
@@ -29,6 +29,7 @@
 #include <signaldata/EventReport.hpp>
 #include <signaldata/ContinueFragmented.hpp>
 #include <signaldata/NodeStateSignalData.hpp>
+#include <signaldata/FsRef.hpp>
 #include <DebuggerNames.hpp>
 #include "LongSignal.hpp"
 
@@ -140,6 +141,13 @@
   a[GSN_UTIL_UNLOCK_REF]  = &SimulatedBlock::execUTIL_UNLOCK_REF;
   a[GSN_UTIL_UNLOCK_CONF] = &SimulatedBlock::execUTIL_UNLOCK_CONF;
   a[GSN_READ_CONFIG_REQ] = &SimulatedBlock::execREAD_CONFIG_REQ;
+  a[GSN_FSOPENREF]    = &SimulatedBlock::execFSOPENREF;
+  a[GSN_FSCLOSEREF]   = &SimulatedBlock::execFSCLOSEREF;
+  a[GSN_FSWRITEREF]   = &SimulatedBlock::execFSWRITEREF;
+  a[GSN_FSREADREF]    = &SimulatedBlock::execFSREADREF;
+  a[GSN_FSREMOVEREF]  = &SimulatedBlock::execFSREMOVEREF;
+  a[GSN_FSSYNCREF]    = &SimulatedBlock::execFSSYNCREF;
+  a[GSN_FSAPPENDREF]  = &SimulatedBlock::execFSAPPENDREF;
 }
 
 void
@@ -1779,6 +1787,61 @@
     UpgradeStartup::execCNTR_MASTER_REPLY(* this, signal);
     break;
   }
+}
+
+void
+SimulatedBlock::fsRefError(Signal* signal, Uint32 line, const char *msg) 
+{
+  const FsRef *fsRef = (FsRef*)signal->getDataPtr();
+  Uint32 errorCode = fsRef->errorCode;
+  Uint32 osErrorCode = fsRef->osErrorCode;
+  char msg2[100];
+
+  sprintf(msg2, "%s: %s. OS errno: %u", getBlockName(number()), msg, osErrorCode);
+
+  progError(line, errorCode, msg2);
+}
+
+void
+SimulatedBlock::execFSWRITEREF(Signal* signal) 
+{
+  fsRefError(signal, __LINE__, "File system write failed");
+}
+
+void
+SimulatedBlock::execFSREADREF(Signal* signal) 
+{
+  fsRefError(signal, __LINE__, "File system read failed");
+}
+
+void
+SimulatedBlock::execFSCLOSEREF(Signal* signal) 
+{
+  fsRefError(signal, __LINE__, "File system close failed");
+}
+
+void
+SimulatedBlock::execFSOPENREF(Signal* signal) 
+{
+  fsRefError(signal, __LINE__, "File system open failed");
+}
+
+void
+SimulatedBlock::execFSREMOVEREF(Signal* signal) 
+{
+  fsRefError(signal, __LINE__, "File system remove failed");
+}
+
+void
+SimulatedBlock::execFSSYNCREF(Signal* signal) 
+{
+  fsRefError(signal, __LINE__, "File system sync failed");
+}
+
+void
+SimulatedBlock::execFSAPPENDREF(Signal* signal) 
+{
+  fsRefError(signal, __LINE__, "File system append failed");
 }
 
 #ifdef VM_TRACE

--- 1.12/ndb/src/kernel/vm/SimulatedBlock.hpp	2005-08-22 01:59:21 -07:00
+++ 1.13/ndb/src/kernel/vm/SimulatedBlock.hpp	2005-08-31 15:19:31 -07:00
@@ -507,6 +507,15 @@
 protected:
   void execUPGRADE(Signal* signal);
 
+  void fsRefError(Signal* signal, Uint32 line, const char *msg);
+  void execFSWRITEREF(Signal* signal);
+  void execFSREADREF(Signal* signal);
+  void execFSOPENREF(Signal* signal);
+  void execFSCLOSEREF(Signal* signal);
+  void execFSREMOVEREF(Signal* signal);
+  void execFSSYNCREF(Signal* signal);
+  void execFSAPPENDREF(Signal* signal);
+
   // Variable for storing inserted errors, see pc.H
   ERROR_INSERT_VARIABLE;
 

--- 1.52/ndb/src/mgmclient/CommandInterpreter.cpp	2005-07-15 05:00:03 -07:00
+++ 1.53/ndb/src/mgmclient/CommandInterpreter.cpp	2005-08-31 15:19:31 -07:00
@@ -1922,47 +1922,54 @@
     return;
   }
   BaseString tmp(parameters);
-  Vector<BaseString> spec;
-  tmp.split(spec, "=");
-  if(spec.size() != 2){
-    ndbout << "Invalid loglevel specification: " << parameters << endl;
-    return;
-  }
+  Vector<BaseString> specs;
+  tmp.split(specs, " ");
 
-  spec[0].trim().ndb_toupper();
-  int category = ndb_mgm_match_event_category(spec[0].c_str());
-  if(category == NDB_MGM_ILLEGAL_EVENT_CATEGORY){
-    if(!convert(spec[0].c_str(), category) ||
-       category < NDB_MGM_MIN_EVENT_CATEGORY ||
-       category > NDB_MGM_MAX_EVENT_CATEGORY){
-      ndbout << "Unknown category: \"" << spec[0].c_str() << "\""
<< endl;
-      return;
+  for (int i=0; i < specs.size(); i++)
+  {
+    Vector<BaseString> spec;
+    specs[i].split(spec, "=");
+    if(spec.size() != 2){
+      ndbout << "Invalid loglevel specification: " << specs[i] << endl;
+      continue;
     }
-  }
 
-  int level;
-  if (!convert(spec[1].c_str(),level))
-  {
-    ndbout << "Invalid level: " << spec[1].c_str() << endl;
-    return;
-  }
+    spec[0].trim().ndb_toupper();
+    int category = ndb_mgm_match_event_category(spec[0].c_str());
+    if(category == NDB_MGM_ILLEGAL_EVENT_CATEGORY){
+      if(!convert(spec[0].c_str(), category) ||
+	 category < NDB_MGM_MIN_EVENT_CATEGORY ||
+	 category > NDB_MGM_MAX_EVENT_CATEGORY){
+	ndbout << "Unknown category: \"" << spec[0].c_str() << "\"" <<
endl;
+	continue;
+      }
+    }
+
+    int level;
+    if (!convert(spec[1].c_str(),level))
+    {
+      ndbout << "Invalid level: " << spec[1].c_str() << endl;
+      continue;
+    }
 
-  ndbout << "Executing CLUSTERLOG on node " << processId << flush;
+    ndbout << "Executing CLUSTERLOG " << spec[0] << "=" <<
spec[1]
+	   << " on node " << processId << flush;
 
-  struct ndb_mgm_reply reply;
-  int result;
-  result = ndb_mgm_set_loglevel_clusterlog(m_mgmsrv, 
-					   processId,
-					   (ndb_mgm_event_category)category,
-					   level, 
-					   &reply);
+    struct ndb_mgm_reply reply;
+    int result;
+    result = ndb_mgm_set_loglevel_clusterlog(m_mgmsrv, 
+					     processId,
+					     (ndb_mgm_event_category)category,
+					     level, 
+					     &reply);
   
-  if (result != 0) {
-    ndbout_c(" failed."); 
-    printError();
-  } else {
-    ndbout_c(" OK!"); 
-  }  
+    if (result != 0) {
+      ndbout_c(" failed."); 
+      printError();
+    } else {
+      ndbout_c(" OK!"); 
+    }
+  }
 }
 
 /*****************************************************************************

--- 1.250/sql/ha_innodb.cc	2005-08-30 11:17:41 -07:00
+++ 1.251/sql/ha_innodb.cc	2005-08-31 15:24:03 -07:00
@@ -2407,6 +2407,7 @@
     		my_free((char*) upd_buff, MYF(0));
     		my_errno = ENOENT;
 
+		dict_table_decrement_handle_count(ib_table);
     		DBUG_RETURN(HA_ERR_NO_SUCH_TABLE);
   	}
 
@@ -6682,13 +6683,28 @@
 
 	if (lock_type != TL_IGNORE && lock.type == TL_UNLOCK) {
 
-		/* Starting from 5.0.7, we weaken also the table locks
+                /* Starting from 5.0.7, we weaken also the table locks
 		set at the start of a MySQL stored procedure call, just like
 		we weaken the locks set at the start of an SQL statement.
 		MySQL does set thd->in_lock_tables TRUE there, but in reality
 		we do not need table locks to make the execution of a
 		single transaction stored procedure call deterministic
 		(if it does not use a consistent read). */
+
+		if (lock_type == TL_READ && thd->in_lock_tables) {
+			/* We come here if MySQL is processing LOCK TABLES
+			... READ LOCAL. MyISAM under that table lock type
+			reads the table as it was at the time the lock was
+			granted (new inserts are allowed, but not seen by the
+			reader). To get a similar effect on an InnoDB table,
+			we must use LOCK TABLES ... READ. We convert the lock
+			type here, so that for InnoDB, READ LOCAL is
+			equivalent to READ. This will change the InnoDB
+			behavior in mysqldump, so that dumps of InnoDB tables
+			are consistent with dumps of MyISAM tables. */
+
+			lock_type = TL_READ_NO_INSERT;
+		}
 
     		/* If we are not doing a LOCK TABLE or DISCARD/IMPORT
 		TABLESPACE or TRUNCATE TABLE, then allow multiple writers */

--- 1.40/ndb/src/ndbapi/ndberror.c	2005-07-20 04:25:49 -07:00
+++ 1.41/ndb/src/ndbapi/ndberror.c	2005-08-31 15:24:03 -07:00
@@ -57,9 +57,6 @@
 
 #define OE ndberror_cl_schema_object_already_exists
 
-static const char REDO_BUFFER_MSG[]=
-"REDO log buffers overloaded, consult online manual (increase RedoBuffer, and|or decrease
TimeBetweenLocalCheckpoints, and|or increase NoOfFragmentLogFiles)";
-
 static const char* empty_string = "";
 
 /*
@@ -168,8 +165,9 @@
   { 830,  TR, "Out of add fragment operation records" },
   { 873,  TR, "Out of attrinfo records for scan in tuple manager" },
   { 1217, TR, "Out of operation records in local data manager (increase
MaxNoOfLocalOperations)" },
-  { 1220, TR, REDO_BUFFER_MSG },
+  { 1220, TR, "REDO log files overloaded, consult online manual (decrease
TimeBetweenLocalCheckpoints, and|or increase NoOfFragmentLogFiles)" },
   { 1222, TR, "Out of transaction markers in LQH" },
+  { 1224, TR, "Out of Send Buffer space in LQH" },
   { 4021, TR, "Out of Send Buffer space in NDB API" },
   { 4022, TR, "Out of Send Buffer space in NDB API" },
   { 4032, TR, "Out of Send Buffer space in NDB API" },
@@ -200,10 +198,10 @@
   /**
    * OverloadError
    */
-  { 410,  OL, REDO_BUFFER_MSG },
+  { 410,  OL, "REDO log files overloaded, consult online manual (decrease
TimeBetweenLocalCheckpoints, and|or increase NoOfFragmentLogFiles)" },
   { 677,  OL, "Index UNDO buffers overloaded (increase UndoIndexBuffer)" },
   { 891,  OL, "Data UNDO buffers overloaded (increase UndoDataBuffer)" },
-  { 1221, OL, REDO_BUFFER_MSG },
+  { 1221, OL, "REDO buffers overloaded, consult online manual (increase RedoBuffer)" },
   { 4006, OL, "Connect failure - out of connection objects (increase
MaxNoOfConcurrentTransactions)" }, 
 
 

--- 1.156/tests/mysql_client_test.c	2005-08-27 00:09:51 -07:00
+++ 1.157/tests/mysql_client_test.c	2005-08-31 15:19:32 -07:00
@@ -9483,7 +9483,7 @@
     rc= mysql_stmt_execute(stmt_drop);
     check_execute(stmt_drop, rc);
     if (!opt_silent)
-      fprintf(stdout, "droped %i\n", i);
+      fprintf(stdout, "dropped %i\n", i);
 
     rc= mysql_stmt_execute(stmt_create_select);
     check_execute(stmt_create, rc);
@@ -9498,7 +9498,7 @@
     rc= mysql_stmt_execute(stmt_drop);
     check_execute(stmt_drop, rc);
     if (!opt_silent)
-      fprintf(stdout, "droped %i\n", i);
+      fprintf(stdout, "dropped %i\n", i);
   }
 
   mysql_stmt_close(stmt_create);

--- 1.14/mysql-test/t/system_mysql_db_fix.test	2005-07-28 06:12:37 -07:00
+++ 1.15/mysql-test/t/system_mysql_db_fix.test	2005-08-31 15:19:30 -07:00
@@ -89,7 +89,7 @@
 
 -- enable_query_log
 
-# check that we droped all system tables
+# check that we dropped all system tables
 show tables;
 
 # End of 4.1 tests

--- 1.41/mysql-test/r/func_gconcat.result	2005-07-28 21:28:14 -07:00
+++ 1.42/mysql-test/r/func_gconcat.result	2005-08-31 15:19:30 -07:00
@@ -555,3 +555,6 @@
 COUNT(*)	GROUP_CONCAT(DISTINCT t2.somename SEPARATOR ' |')
 2	test
 DROP TABLE t1,t2;
+select * from (select group_concat('c') from DUAL) t;
+group_concat('c')
+NULL

--- 1.31/mysql-test/t/func_gconcat.test	2005-07-28 21:29:40 -07:00
+++ 1.32/mysql-test/t/func_gconcat.test	2005-08-31 15:19:30 -07:00
@@ -350,4 +350,9 @@
 
 DROP TABLE t1,t2;
 
+#
+# Bug #12861 hang with group_concat insubquery FROM DUAL
+#
+select * from (select group_concat('c') from DUAL) t;
+
 # End of 4.1 tests
Thread
bk commit into 5.0 tree (jimw:1.1930)Jim Winstead1 Sep