List:Commits« Previous MessageNext Message »
From:tomas Date:February 14 2007 9:26am
Subject:bk commit into 5.0 tree (tomas:1.2414) BUG#26176
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.2414 07/02/14 15:26:06 tomas@stripped +4 -0
      backport some mysql-test ndbcluster things from 5.1
      remove compiler warning EventLogger.cpp
      Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
       - partial fix
       - object map to handle failed realloc
  

  ndb/src/ndbapi/ObjectMap.hpp
    1.10 07/02/14 15:25:52 tomas@stripped +7 -6
    Bug#26176 NdbObjectIdMap::expand unable to expand!! mysqld got signal 11
     - partial fix
     - object map to handle failed realloc

  ndb/src/common/debugger/EventLogger.cpp
    1.32 07/02/14 15:25:51 tomas@stripped +2 -2
    remove compiler warning

  mysql-test/ndb/ndbcluster.sh
    1.48 07/02/14 15:25:51 tomas@stripped +65 -32
    backport some mysql-test ndbcluster things from 5.1

  mysql-test/ndb/ndb_config_2_node.ini
    1.16 07/02/14 15:25:51 tomas@stripped +10 -0
    backport some mysql-test ndbcluster things from 5.1

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

--- 1.31/ndb/src/common/debugger/EventLogger.cpp	2007-02-09 20:31:46 +07:00
+++ 1.32/ndb/src/common/debugger/EventLogger.cpp	2007-02-14 15:25:51 +07:00
@@ -530,8 +530,8 @@ void getTextUndoLogBlocked(QQQQ) {
 }
 void getTextTransporterError(QQQQ) {
   struct myTransporterError{
-    int errorNum;
-    char  errorString[256];
+    Uint32 errorNum;
+    char   errorString[256];
   };
   int i = 0;
   int lenth = 0;

--- 1.9/ndb/src/ndbapi/ObjectMap.hpp	2006-12-24 02:04:18 +07:00
+++ 1.10/ndb/src/ndbapi/ObjectMap.hpp	2007-02-14 15:25:52 +07:00
@@ -46,7 +46,7 @@ private:
   } * m_map;
 
   NdbMutex * m_mutex;
-  void expand(Uint32 newSize);
+  int expand(Uint32 newSize);
 };
 
 inline
@@ -73,9 +73,8 @@ NdbObjectIdMap::map(void * object){
   
   //  lock();
   
-  if(m_firstFree == InvalidId){
-    expand(m_expandSize);
-  }
+  if(m_firstFree == InvalidId && expand(m_expandSize))
+    return InvalidId;
   
   Uint32 ff = m_firstFree;
   m_firstFree = m_map[ff].m_next;
@@ -130,7 +129,7 @@ NdbObjectIdMap::getObject(Uint32 id){
   return 0;
 }
 
-inline void
+inline int
 NdbObjectIdMap::expand(Uint32 incSize){
   NdbMutex_Lock(m_mutex);
   Uint32 newSize = m_size + incSize;
@@ -149,9 +148,11 @@ NdbObjectIdMap::expand(Uint32 incSize){
   }
   else
   {
-    ndbout_c("NdbObjectIdMap::expand unable to expand!!");
+    NdbMutex_Unlock(m_mutex);
+    return -1;
   }
   NdbMutex_Unlock(m_mutex);
+  return 0;
 }
 
 #endif

--- 1.47/mysql-test/ndb/ndbcluster.sh	2006-12-31 00:25:24 +07:00
+++ 1.48/mysql-test/ndb/ndbcluster.sh	2007-02-14 15:25:51 +07:00
@@ -63,12 +63,17 @@ stop_ndb=
 initial_ndb=
 status_ndb=
 ndb_diskless=0
+ndbd_nodes=2
+relative_config_data_dir=
+opt_core=
 
 ndb_no_ord=512
+ndb_no_attr=2048
 ndb_con_op=105000
 ndb_dmem=80M
 ndb_imem=24M
 
+VERBOSE=100
 NDB_MGM_EXTRA_OPTS=
 NDB_MGMD_EXTRA_OPTS=
 NDBD_EXTRA_OPTS=
@@ -89,6 +94,9 @@ while test $# -gt 0; do
     --debug*)
      flags_ndb="$flags_ndb $1"
      ;;
+    --ndbd-nodes=*)
+     ndbd_nodes=`echo "$1" | sed -e "s;--ndbd-nodes=;;"`
+     ;;
     --status)
      status_ndb=1
      ;;
@@ -104,6 +112,9 @@ while test $# -gt 0; do
     --data-dir=*)
      fsdir=`echo "$1" | sed -e "s;--data-dir=;;"`
      ;;
+    --relative-config-data-dir)
+     relative_config_data_dir=1
+     ;;
     --port=*)
      port=`echo "$1" | sed -e "s;--port=;;"`
      ;;
@@ -122,6 +133,12 @@ while test $# -gt 0; do
     --character-sets-dir=*)
      CHARSETSDIR=`echo "$1" | sed -e "s;--character-sets-dir=;;"`
      ;;
+    --core)
+     opt_core="--core"
+     ;;
+    --verbose=*)
+     VERBOSE=`echo "$1" | sed -e "s;--verbose=;;"`
+     ;;
     -- )  shift; break ;;
     --* ) $ECHO "Unrecognized option: $1"; exit 1 ;;
     * ) break ;;
@@ -130,9 +147,10 @@ while test $# -gt 0; do
 done
 
 fs_ndb="$fsdir/ndbcluster-$port"
+config_ini=ndb/ndb_config_${ndbd_nodes}_node.ini
 
 NDB_HOME=
-if [ ! -x "$fsdir" ]; then
+if [ ! -d "$fsdir" ]; then
   echo "$fsdir missing"
   exit 1
 fi
@@ -148,11 +166,15 @@ if [ ! -x "$exec_waiter" ]; then
   echo "$exec_waiter missing"
   exit 1
 fi
+if [ ! -f "$config_ini" ]; then
+  echo "$config_ini missing, unsupported number of nodes"
+  exit 1
+fi
 
-exec_mgmtclient="$exec_mgmtclient --no-defaults $NDB_MGM_EXTRA_OPTS"
-exec_mgmtsrvr="$exec_mgmtsrvr --no-defaults $NDB_MGMD_EXTRA_OPTS"
-exec_ndb="$exec_ndb --no-defaults $NDBD_EXTRA_OPTS --character-sets-dir=$CHARSETSDIR"
-exec_waiter="$exec_waiter --no-defaults"
+exec_mgmtclient="$exec_mgmtclient --no-defaults $opt_core $NDB_MGM_EXTRA_OPTS"
+exec_mgmtsrvr="$exec_mgmtsrvr --no-defaults $opt_core $NDB_MGMD_EXTRA_OPTS"
+exec_ndb="$exec_ndb --no-defaults $opt_core $NDBD_EXTRA_OPTS
--character-sets-dir=$CHARSETSDIR"
+exec_waiter="$exec_waiter --no-defaults $opt_core"
 
 ndb_host="localhost"
 ndb_mgmd_port=$port
@@ -196,18 +218,24 @@ fi
 # Start management server as deamon
 
 # Edit file system path and ports in config file
+if [ $relative_config_data_dir ] ; then
+  config_fs_ndb="."
+else
+  config_fs_ndb=$fs_ndb
+fi
 if [ $initial_ndb ] ; then
-  rm -f $fs_ndb/ndb_* 2>&1 | cat > /dev/null
+  rm -rf $fs_ndb/ndb_* 2>&1 | cat > /dev/null
   sed \
+    -e s,"CHOOSE_MaxNoOfAttributes","$ndb_no_attr",g \
     -e s,"CHOOSE_MaxNoOfOrderedIndexes","$ndb_no_ord",g \
     -e s,"CHOOSE_MaxNoOfConcurrentOperations","$ndb_con_op",g \
     -e s,"CHOOSE_DataMemory","$ndb_dmem",g \
     -e s,"CHOOSE_IndexMemory","$ndb_imem",g \
     -e s,"CHOOSE_Diskless","$ndb_diskless",g \
     -e s,"CHOOSE_HOSTNAME_".*,"$ndb_host",g \
-    -e s,"CHOOSE_FILESYSTEM","$fs_ndb",g \
+    -e s,"CHOOSE_FILESYSTEM","$config_fs_ndb",g \
     -e s,"CHOOSE_PORT_MGM","$ndb_mgmd_port",g \
-    < ndb/ndb_config_2_node.ini \
+    < "$config_ini" \
     > "$fs_ndb/config.ini"
 fi
 
@@ -218,7 +246,7 @@ if ( cd "$fs_ndb" ; $exec_mgmtsrvr -f co
   echo "Unable to start $exec_mgmtsrvr from `pwd`"
   exit 1
 fi
-if sleep_until_file_created $fs_ndb/ndb_3.pid 120
+if sleep_until_file_created $fs_ndb/ndb_`expr $ndbd_nodes + 1`.pid 120
 then :; else
   exit 1
 fi
@@ -226,38 +254,43 @@ cat `find "$fs_ndb" -name 'ndb_*.pid'` >
 
 # Start database node 
 
-echo "Starting ndbd"
-( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
-if sleep_until_file_created $fs_ndb/ndb_1.pid 120
-then :; else
-  stop_default_ndbcluster
-  exit 1
-fi
-cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
-
-# Start database node 
-
-echo "Starting ndbd"
-( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
-if sleep_until_file_created $fs_ndb/ndb_2.pid 120
-then :; else
-  stop_default_ndbcluster
-  exit 1
-fi
-cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
+id=1
+while [ $id -le $ndbd_nodes ]
+do
+  if [ `expr $VERBOSE \> 1` = 1 ] ; then
+    echo "Starting ndbd $id($ndbd_nodes)"
+  fi
+  ( cd "$fs_ndb" ; $exec_ndb $flags_ndb & )
+  if sleep_until_file_created $fs_ndb/ndb_${id}.pid 120
+  then :; else
+    stop_default_ndbcluster
+    exit 1
+  fi
+  cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
+  id=`expr $id + 1`
+done
 
 # test if Ndb Cluster starts properly
 
-echo "Waiting for NDB data nodes to start..."
-if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK" > /dev/null 2>&1; then :;
else
-  echo "Ndbcluster startup failed"
+if [ `expr $VERBOSE \> 1` = 1 ] ; then
+  echo "Waiting for NDB data nodes to start..."
+fi
+if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK" > /dev/null 2>&1 ; then
:; else
+  if [ `expr $VERBOSE \> 0` = 1 ] ; then
+    echo "Ndbcluster startup failed"
+  fi
   stop_default_ndbcluster
   exit 1
 fi
+if [ `expr $VERBOSE \> 1` = 1 ] ; then
+  echo "Ok"
+fi
 
 cat `find "$fs_ndb" -name 'ndb_*.pid'` > $fs_ndb/$pidfile
 
-status_ndbcluster
+if [ `expr $VERBOSE \> 2` = 1 ] ; then
+  status_ndbcluster
+fi
 }
 
 status_ndbcluster() {

--- 1.15/mysql-test/ndb/ndb_config_2_node.ini	2005-02-10 01:29:20 +07:00
+++ 1.16/mysql-test/ndb/ndb_config_2_node.ini	2007-02-14 15:25:51 +07:00
@@ -1,5 +1,6 @@
 [ndbd default]
 NoOfReplicas= 2
+MaxNoOfConcurrentTransactions= 64
 MaxNoOfConcurrentOperations= CHOOSE_MaxNoOfConcurrentOperations
 DataMemory= CHOOSE_DataMemory
 IndexMemory= CHOOSE_IndexMemory
@@ -7,6 +8,15 @@ Diskless= CHOOSE_Diskless
 TimeBetweenWatchDogCheck= 30000
 DataDir= CHOOSE_FILESYSTEM
 MaxNoOfOrderedIndexes= CHOOSE_MaxNoOfOrderedIndexes
+MaxNoOfAttributes= CHOOSE_MaxNoOfAttributes
+TimeBetweenGlobalCheckpoints= 500
+NoOfFragmentLogFiles= 3
+
+#
+# Increase deadlock-timeout to cater for slow test-machines
+#   (possibly running several tests in parallell)
+#
+#TransactionDeadlockDetectionTimeout= 7500
 
 [ndbd]
 HostName= CHOOSE_HOSTNAME_1   # hostname is a valid network adress
Thread
bk commit into 5.0 tree (tomas:1.2414) BUG#26176tomas14 Feb