Below is the list of changes that have just been committed into a local
5.0 repository of pekka. When pekka does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.2039 06/02/07 18:10:42 pekka@stripped +3 -0
ndb - add option ndbd --foreground for manual debugging
ndb/src/kernel/vm/Configuration.hpp
1.18 06/02/07 18:09:44 pekka@stripped +9 -1
add option ndbd --foreground for manual debugging
ndb/src/kernel/vm/Configuration.cpp
1.43 06/02/07 18:09:44 pekka@stripped +14 -3
add option ndbd --foreground for manual debugging
ndb/src/kernel/main.cpp
1.60 06/02/07 18:09:44 pekka@stripped +11 -7
add option ndbd --foreground for manual debugging
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: pekka
# Host: orca.ndb.mysql.com
# Root: /space/pekka/ndb/version/my50
--- 1.59/ndb/src/kernel/main.cpp 2006-02-07 14:02:12 +01:00
+++ 1.60/ndb/src/kernel/main.cpp 2006-02-07 18:09:44 +01:00
@@ -272,8 +272,8 @@
#ifndef NDB_WIN32
signal(SIGUSR1, handler_sigusr1);
- pid_t child;
- while (1)
+ pid_t child = -1;
+ while (! theConfig->getForegroundMode()) // the cond is const
{
// setup reporting between child and parent
int filedes[2];
@@ -395,8 +395,10 @@
if (child >= 0)
g_eventLogger.info("Angel pid: %d ndb pid: %d", getppid(), getpid());
- else
+ else if (child > 0)
g_eventLogger.info("Ndb pid: %d", getpid());
+ else
+ g_eventLogger.info("Ndb started in foreground");
#else
g_eventLogger.info("Ndb started");
#endif
@@ -571,10 +573,7 @@
#ifdef SIGPOLL
SIGPOLL,
#endif
- SIGSEGV,
-#ifdef SIGTRAP
- SIGTRAP
-#endif
+ SIGSEGV
};
static const int signals_ignore[] = {
@@ -588,6 +587,11 @@
handler_register(signals_error[i], handler_error, ignore);
for(i = 0; i < sizeof(signals_ignore)/sizeof(signals_ignore[0]); i++)
handler_register(signals_ignore[i], SIG_IGN, ignore);
+#ifdef SIGTRAP
+ Configuration* theConfig = globalEmulatorData.theConfiguration;
+ if (! theConfig->getForegroundMode())
+ handler_register(SIGTRAP, handler_error, ignore);
+#endif
#endif
}
--- 1.42/ndb/src/kernel/vm/Configuration.cpp 2006-01-16 14:13:13 +01:00
+++ 1.43/ndb/src/kernel/vm/Configuration.cpp 2006-02-07 18:09:44 +01:00
@@ -48,11 +48,13 @@
enum ndbd_options {
OPT_INITIAL = NDB_STD_OPTIONS_LAST,
- OPT_NODAEMON
+ OPT_NODAEMON,
+ OPT_FOREGROUND
};
NDB_STD_OPTS_VARS;
-static int _daemon, _no_daemon, _initial, _no_start;
+// XXX should be my_bool ???
+static int _daemon, _no_daemon, _foreground, _initial, _no_start;
/**
* Arguments to NDB process
*/
@@ -75,6 +77,11 @@
"Do not start ndbd as daemon, provided for testing purposes",
(gptr*) &_no_daemon, (gptr*) &_no_daemon, 0,
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0 },
+ { "foreground", OPT_FOREGROUND,
+ "Run real ndbd in foreground, provided for debugging purposes"
+ " (implies --nodaemon)",
+ (gptr*) &_foreground, (gptr*) &_foreground, 0,
+ GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
static void short_usage_sub(void)
@@ -103,13 +110,14 @@
ndb_std_get_one_option)))
exit(ho_error);
- if (_no_daemon) {
+ if (_no_daemon || _foreground) {
_daemon= 0;
}
DBUG_PRINT("info", ("no_start=%d", _no_start));
DBUG_PRINT("info", ("initial=%d", _initial));
DBUG_PRINT("info", ("daemon=%d", _daemon));
+ DBUG_PRINT("info", ("foreground=%d", _foreground));
DBUG_PRINT("info", ("connect_str=%s", opt_connect_str));
ndbSetOwnVersion();
@@ -131,6 +139,8 @@
// Check daemon flag
if (_daemon)
_daemonMode = true;
+ if (_foreground)
+ _foregroundMode = true;
// Save programname
if(argc > 0 && argv[0] != 0)
@@ -151,6 +161,7 @@
_backupPath = 0;
_initialStart = false;
_daemonMode = false;
+ _foregroundMode = false;
m_config_retriever= 0;
m_clusterConfig= 0;
m_clusterConfigIter= 0;
--- 1.17/ndb/src/kernel/vm/Configuration.hpp 2006-01-16 14:13:13 +01:00
+++ 1.18/ndb/src/kernel/vm/Configuration.hpp 2006-02-07 18:09:44 +01:00
@@ -64,6 +64,7 @@
bool getInitialStart() const;
void setInitialStart(bool val);
bool getDaemonMode() const;
+ bool getForegroundMode() const;
const ndb_mgm_configuration_iterator * getOwnConfigIterator() const;
@@ -105,7 +106,8 @@
char * _connectString;
Uint32 m_mgmd_port;
BaseString m_mgmd_host;
- bool _daemonMode;
+ bool _daemonMode; // if not, angel in foreground
+ bool _foregroundMode; // no angel, raw ndbd in foreground
void calcSizeAlt(class ConfigValues * );
};
@@ -138,6 +140,12 @@
bool
Configuration::getDaemonMode() const {
return _daemonMode;
+}
+
+inline
+bool
+Configuration::getForegroundMode() const {
+ return _foregroundMode;
}
#endif
| Thread |
|---|
| • bk commit into 5.0 tree (pekka:1.2039) | pekka | 7 Feb |