summaryrefslogtreecommitdiff
path: root/ndb
diff options
context:
space:
mode:
authorunknown <joreland@mysql.com>2004-05-28 09:09:47 +0200
committerunknown <joreland@mysql.com>2004-05-28 09:09:47 +0200
commitfc8e3654fe62f825f48bd8e42f9b0fcc6402b109 (patch)
treec3080a3487982f96b3e8b08b0f3b663945fa4125 /ndb
parent36c291181f82f674d69a003943dff232f06b13d1 (diff)
downloadmariadb-git-fc8e3654fe62f825f48bd8e42f9b0fcc6402b109.tar.gz
BUg#3910
ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp: New error insert for ndbrequire ndb/src/kernel/ndb-main/Main.cpp: WEXITSTATUS only contains valid value if WIFEXITED
Diffstat (limited to 'ndb')
-rw-r--r--ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp4
-rw-r--r--ndb/src/kernel/ndb-main/Main.cpp6
2 files changed, 7 insertions, 3 deletions
diff --git a/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp b/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp
index 7eb7f995eb7..694007c8508 100644
--- a/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp
+++ b/ndb/src/kernel/blocks/cmvmi/Cmvmi.cpp
@@ -132,6 +132,10 @@ void Cmvmi::execNDB_TAMPER(Signal* signal)
if(ERROR_INSERTED(9998)){
while(true) NdbSleep_SecSleep(1);
}
+
+ if(ERROR_INSERTED(9997)){
+ ndbrequire(false);
+ }
}//execNDB_TAMPER()
void Cmvmi::execSET_LOGLEVELORD(Signal* signal)
diff --git a/ndb/src/kernel/ndb-main/Main.cpp b/ndb/src/kernel/ndb-main/Main.cpp
index e8014b63d08..961d111f298 100644
--- a/ndb/src/kernel/ndb-main/Main.cpp
+++ b/ndb/src/kernel/ndb-main/Main.cpp
@@ -93,7 +93,7 @@ NDB_MAIN(ndb_kernel){
catchsigs(true);
int status = 0;
while(waitpid(child, &status, 0) != child);
- if(WIFEXITED(status) || !theConfig->stopOnError()){
+ if(WIFEXITED(status)){
switch(WEXITSTATUS(status)){
case NRT_Default:
g_eventLogger.info("Angel shutting down");
@@ -117,13 +117,13 @@ NDB_MAIN(ndb_kernel){
globalData.theRestartFlag = perform_start;
break;
}
- g_eventLogger.info("Ndb has terminated (pid %d) restarting", child);
- } else {
+ } else if(theConfig->stopOnError()){
/**
* Error shutdown && stopOnError()
*/
exit(0);
}
+ g_eventLogger.info("Ndb has terminated (pid %d) restarting", child);
}
g_eventLogger.info("Angel pid: %d ndb pid: %d", getppid(), getpid());