From f429d536e3ad4123a42d6c8e21154f633347e640 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Jun 2005 10:22:32 +0200 Subject: [PATCH 1/4] ndb - autotest script fixes for solaris ndb/src/cw/cpcd/main.cpp: fix usage of load_defaults, as it does have a short option ndb/test/run-test/make-config.sh: fix script wrt solaris ndb/test/run-test/ndb-autotest.sh: fix script wrt solaris --- ndb/src/cw/cpcd/main.cpp | 6 +----- ndb/test/run-test/make-config.sh | 34 +++++++++++++++---------------- ndb/test/run-test/ndb-autotest.sh | 17 ++++++++-------- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/ndb/src/cw/cpcd/main.cpp b/ndb/src/cw/cpcd/main.cpp index 25632f132e9..ba877095a04 100644 --- a/ndb/src/cw/cpcd/main.cpp +++ b/ndb/src/cw/cpcd/main.cpp @@ -32,10 +32,9 @@ #include "common.hpp" static const char *work_dir = CPCD_DEFAULT_WORK_DIR; -static int port; +static int unsigned port; static int use_syslog; static const char *logfile = NULL; -static const char *config_file = CPCD_DEFAULT_CONFIG_FILE; static const char *user = 0; static struct my_option my_long_options[] = @@ -55,9 +54,6 @@ static struct my_option my_long_options[] = { "debug", 'D', "Enable debug mode", (gptr*) &debug, (gptr*) &debug, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0 }, - { "config", 'c', "Config file", - (gptr*) &config_file, (gptr*) &config_file, 0, - GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, { "user", 'u', "Run as user", (gptr*) &user, (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0 }, diff --git a/ndb/test/run-test/make-config.sh b/ndb/test/run-test/make-config.sh index 1321ce4e9f0..e82acb8a7dd 100755 --- a/ndb/test/run-test/make-config.sh +++ b/ndb/test/run-test/make-config.sh @@ -20,40 +20,40 @@ add_procs(){ } add_proc (){ - dir="" - conf="" case $type in mgm) - dir="ndb_mgmd" - conf="[ndb_mgmd]\nId: $node_id\nHostName: $2\n" + echo "$proc_no.ndb_mgmd" >> $dir_file + echo "[ndb_mgmd]" >> $config_file + echo "Id: $node_id" >> $config_file + echo "HostName: $2" >> $config_file node_id=`expr $node_id + 1` ;; api) - dir="ndb_api" - conf="[api]\nId: $node_id\nHostName: $2\n" + echo "$proc_no.ndb_api" >> $dir_file + echo "[api]" >> $config_file + echo "Id: $node_id" >> $config_file + echo "HostName: $2" >> $config_file node_id=`expr $node_id + 1` ;; ndb) - dir="ndbd" - conf="[ndbd]\nId: $node_id\nHostName: $2\n" + echo "$proc_no.ndbd" >> $dir_file + echo "[ndbd]" >> $config_file + echo "Id: $node_id" >> $config_file + echo "HostName: $2" >> $config_file node_id=`expr $node_id + 1` ;; mysqld) - dir="mysqld" - conf="[mysqld]\nId: $node_id\nHostName: $2\n" + echo "$proc_no.mysqld" >> $dir_file + echo "[ndb_mgmd]" >> $config_file + echo "Id: $node_id" >> $config_file + echo "HostName: $2" >> $config_file node_id=`expr $node_id + 1` ;; mysql) - dir="mysql" + echo "$proc_no.mysql" >> $dir_file ;; esac - dir="$proc_no.$dir" proc_no=`expr $proc_no + 1` - echo -e $dir >> $dir_file - if [ "$conf" ] - then - echo -e $conf >> $config_file - fi } diff --git a/ndb/test/run-test/ndb-autotest.sh b/ndb/test/run-test/ndb-autotest.sh index 09087a8a8c7..573a9953924 100755 --- a/ndb/test/run-test/ndb-autotest.sh +++ b/ndb/test/run-test/ndb-autotest.sh @@ -66,7 +66,7 @@ done if [ -f $conf ] then - . $conf + . ./$conf else echo "Can't find config file: $conf" exit @@ -131,8 +131,10 @@ echo "$DATE $RUN" > $LOCK # trap them, and remove the # # Lock file before exit # ############################# - -trap "rm -f $LOCK" ERR +if [ `uname -s` != "SunOS" ] +then + trap "rm -f $LOCK" ERR +fi # You can add more to this path# ################################ @@ -191,7 +193,7 @@ then else echo $VERSION > /tmp/version.$$ fi -match=`grep -c "$VERSION" /tmp/version.$$` +match=`grep -c "$VERSION" /tmp/version.$$ | xargs echo` rm -f /tmp/version.$$ if [ $match -eq 0 ] then @@ -229,7 +231,7 @@ filter(){ shift while [ $# -gt 0 ] do - if [ `grep -c $1 $neg` -eq 0 ] ; then echo $1; fi + if [ `grep -c $1 $neg | xargs echo` -eq 0 ] ; then echo $1; fi shift done } @@ -294,13 +296,12 @@ choose_conf(){ if [ -f $test_dir/conf-$1-$HOST.txt ] then echo "$test_dir/conf-$1-$HOST.txt" - echo "$test_dir/conf-$1-$host.txt" elif [ -f $test_dir/conf-$1.txt ] then echo "$test_dir/conf-$1.txt" else echo "Unable to find conf file looked for" 1>&2 - echo "$testdir/conf-$1-host.txt and" 1>&2 + echo "$testdir/conf-$1-$HOST.txt and" 1>&2 echo "$testdir/conf-$1.txt" 1>&2 exit fi @@ -343,7 +344,7 @@ start(){ count_hosts(){ cnt=`grep "CHOOSE_host" $1 | awk '{for(i=1; i<=NF;i++) \ - if(match($i, "CHOOSE_host") > 0) print $i;}' | sort | uniq | wc -l` + if(index($i, "CHOOSE_host") > 0) print $i;}' | sort | uniq | wc -l` echo $cnt } ####################################################### From bb9268b80395f1b8d701ecbe715edf054e4ceebe Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Jun 2005 12:31:55 +0200 Subject: [PATCH 2/4] ndb - autotest Fix stack overflow in ndb_cpcd on amd64 ndb/src/common/logger/Logger.cpp: Fix stack overflow in ndb_cpcd on amd64 --- ndb/src/common/logger/Logger.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ndb/src/common/logger/Logger.cpp b/ndb/src/common/logger/Logger.cpp index 7f18f5bd3ec..4a48236053d 100644 --- a/ndb/src/common/logger/Logger.cpp +++ b/ndb/src/common/logger/Logger.cpp @@ -352,11 +352,11 @@ Logger::log(LoggerLevel logLevel, const char* pMsg, va_list ap) const { if (m_logLevels[LL_ON] && m_logLevels[logLevel]) { + char buf[MAX_LOG_MESSAGE_SIZE]; + BaseString::vsnprintf(buf, sizeof(buf), pMsg, ap); LogHandler* pHandler = NULL; while ( (pHandler = m_pHandlerList->next()) != NULL) { - char buf[MAX_LOG_MESSAGE_SIZE]; - BaseString::vsnprintf(buf, sizeof(buf), pMsg, ap); pHandler->append(m_pCategory, logLevel, buf); } } From 05b341943a37918fd5448bcb2e924982e7f1b5f0 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 10 Jun 2005 15:13:44 +0200 Subject: [PATCH 3/4] ndb - Fix mem leak in testBlobs ndb/test/ndbapi/testBlobs.cpp: Fix mem leak in testBlobs --- ndb/test/ndbapi/testBlobs.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ndb/test/ndbapi/testBlobs.cpp b/ndb/test/ndbapi/testBlobs.cpp index 7b30777456f..a4e7a53a5d1 100644 --- a/ndb/test/ndbapi/testBlobs.cpp +++ b/ndb/test/ndbapi/testBlobs.cpp @@ -1547,11 +1547,11 @@ testperf() } if (n != 0) { CHK(g_con->execute(Commit) == 0); + g_ndb->closeTransaction(g_con); g_con = 0; n = 0; } g_bh1 = 0; g_opr = 0; - g_con = 0; } // pk read char (one trans) { @@ -1575,7 +1575,7 @@ testperf() t1.off(g_opt.m_rowsperf); DBG(t1.time()); g_opr = 0; - g_con = 0; + g_ndb->closeTransaction(g_con); g_con = 0; } // pk read text (one trans) { @@ -1600,7 +1600,7 @@ testperf() CHK(g_con->execute(Commit) == 0); t2.off(g_opt.m_rowsperf); DBG(t2.time()); - g_opr = 0; + g_ndb->closeTransaction(g_con); g_opr = 0; g_con = 0; } // pk read overhead @@ -1634,7 +1634,7 @@ testperf() CHK(n == g_opt.m_rowsperf); t1.off(g_opt.m_rowsperf); DBG(t1.time()); - g_ops = 0; + g_ndb->closeTransaction(g_con); g_ops = 0; g_con = 0; } // scan read text @@ -1668,7 +1668,7 @@ testperf() DBG(t2.time()); g_bh1 = 0; g_ops = 0; - g_con = 0; + g_ndb->closeTransaction(g_con); g_con = 0; } // scan read overhead DBG("scan read overhead: " << t2.over(t1)); From 06ab901376e7193b65fe9b5edc666876049d97c4 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 13 Jun 2005 09:09:50 +0200 Subject: [PATCH 4/4] bug#10294 - ndb restore with #concurrent transactions < parallelism Enable retry on startTransaction ndb/tools/restore/consumer_restore.cpp: Enable retry on startTransaction==NULL --- ndb/tools/restore/consumer_restore.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/ndb/tools/restore/consumer_restore.cpp b/ndb/tools/restore/consumer_restore.cpp index 9d161773bd2..d782a561e6a 100644 --- a/ndb/tools/restore/consumer_restore.cpp +++ b/ndb/tools/restore/consumer_restore.cpp @@ -288,12 +288,11 @@ void BackupRestore::tuple_a(restore_callback_t *cb) cb->connection = m_ndb->startTransaction(); if (cb->connection == NULL) { - /* - if (errorHandler(cb)) - { + if (errorHandler(cb)) + { + m_ndb->sendPollNdb(3000, 1); continue; - } - */ + } exitHandler(); } // if @@ -409,9 +408,17 @@ void BackupRestore::cback(int result, restore_callback_t *cb) */ bool BackupRestore::errorHandler(restore_callback_t *cb) { - NdbError error= cb->connection->getNdbError(); - m_ndb->closeTransaction(cb->connection); - cb->connection= 0; + NdbError error; + if(cb->connection) + { + error= cb->connection->getNdbError(); + m_ndb->closeTransaction(cb->connection); + cb->connection= 0; + } + else + { + error= m_ndb->getNdbError(); + } Uint32 sleepTime = 100 + cb->retries * 300; @@ -426,6 +433,7 @@ bool BackupRestore::errorHandler(restore_callback_t *cb) break; case NdbError::TemporaryError: + err << "Temporary error: " << error << endl; NdbSleep_MilliSleep(sleepTime); return true; // RETRY