Changeset: 1414b12e44f8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1414b12e44f8
Modified Files:
        tools/merovingian/daemon/controlrunner.c
        tools/merovingian/daemon/forkmserver.c
        tools/merovingian/daemon/merovingian.c
        tools/merovingian/daemon/merovingian.h
Branch: Jun2020
Log Message:

Backed out changeset 8ff1b50c3204: fixes are not correct.


diffs (163 lines):

diff --git a/tools/merovingian/daemon/controlrunner.c 
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -374,8 +374,7 @@ static void ctl_handle_client(
                                                        } else if (stats != 
NULL)
                                                                
msab_freeStatus(&stats);
                                                        
pthread_mutex_lock(&dp->fork_lock);
-                                                       if 
(terminateProcess(dp, type))
-                                                               dp->pid = -1;
+                                                       terminateProcess(dp, 
type);
                                                        
pthread_mutex_unlock(&dp->fork_lock);
                                                        Mfprintf(_mero_ctlout, 
"%s: stopped "
                                                                        
"database '%s'\n", origin, q);
diff --git a/tools/merovingian/daemon/forkmserver.c 
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -31,12 +31,12 @@
  * shut down gracefully within a given time-out.  If that fails, it
  * sends the deadly SIGKILL signal to the mserver process and returns.
  */
-bool
+void
 terminateProcess(dpair dp, mtype type)
 {
        sabdb *stats;
        char *er;
-       int i, e, killed;
+       int i;
        confkeyval *kv;
 
        er = msab_getStatus(&stats, dp->dbname);
@@ -44,13 +44,13 @@ terminateProcess(dpair dp, mtype type)
                Mfprintf(stderr, "cannot terminate process %lld: %s\n",
                                 (long long int)dp->pid, er);
                free(er);
-               return false;
+               return;
        }
 
        if (stats == NULL) {
                Mfprintf(stderr, "strange, process %lld serves database '%s' "
                                 "which does not exist\n", (long long 
int)dp->pid, dp->dbname);
-               return false;
+               return;
        }
 
        switch (stats->state) {
@@ -62,13 +62,13 @@ terminateProcess(dpair dp, mtype type)
                                 "(pid %lld) has crashed\n",
                                 dp->dbname, (long long int)dp->pid);
                msab_freeStatus(&stats);
-               return false;
+               return;
        case SABdbInactive:
                Mfprintf(stdout, "database '%s' appears to have shut down 
already\n",
                                 dp->dbname);
                fflush(stdout);
                msab_freeStatus(&stats);
-               return false;
+               return;
        case SABdbStarting:
                Mfprintf(stderr, "database '%s' appears to be starting up\n",
                                 dp->dbname);
@@ -77,19 +77,19 @@ terminateProcess(dpair dp, mtype type)
        default:
                Mfprintf(stderr, "unknown state: %d\n", (int)stats->state);
                msab_freeStatus(&stats);
-               return false;
+               return;
        }
 
        if (type == MEROFUN) {
                multiplexDestroy(dp->dbname);
                msab_freeStatus(&stats);
-               return true;
+               return;
        } else if (type != MERODB) {
                /* barf */
                Mfprintf(stderr, "cannot stop merovingian process role: %s\n",
                                 dp->dbname);
                msab_freeStatus(&stats);
-               return false;
+               return;
        }
 
        /* ok, once we get here, we'll be shutting down the server */
@@ -119,12 +119,12 @@ terminateProcess(dpair dp, mtype type)
                                Mfprintf (stderr, "database '%s' crashed after 
SIGTERM\n",
                                                  dp->dbname);
                                msab_freeStatus(&stats);
-                               return true;
+                               return;
                        case SABdbInactive:
                                Mfprintf(stdout, "database '%s' has shut 
down\n", dp->dbname);
                                fflush(stdout);
                                msab_freeStatus(&stats);
-                               return true;
+                               return;
                        default:
                                Mfprintf(stderr, "unknown state: %d\n", 
(int)stats->state);
                                break;
@@ -134,16 +134,8 @@ terminateProcess(dpair dp, mtype type)
        Mfprintf(stderr, "timeout of %s seconds expired, sending process %lld"
                         " (database '%s') the KILL signal\n",
                         kv->val, (long long int)dp->pid, dp->dbname);
-       killed = kill(dp->pid, SIGKILL);
-       e = errno;
+       kill(dp->pid, SIGKILL);
        msab_freeStatus(&stats);
-       if (killed == -1) {
-               Mfprintf(stderr, "sending KILL signal to process %lld (database 
'%s')"
-                                " failed: %s\n", (long long int)dp->pid, 
dp->dbname, strerror(e));
-               return false;
-       } else {
-               return true;
-       }
 }
 
 /**
@@ -758,16 +750,14 @@ forkMserver(char *database, sabdb** stat
                        if (scen == NULL) {
                                /* we don't know what it's doing, but we don't 
like it
                                 * any case, so kill it */
-                               if (terminateProcess(dp, MERODB))
-                                       dp->pid = -1;
+                               terminateProcess(dp, MERODB);
                                msab_freeStatus(stats);
                                pthread_mutex_unlock(&dp->fork_lock);
                                return(newErr("database '%s' did not initialise 
the sql "
                                                          "scenario", 
database));
                        }
                } else if (dp->pid != -1) {
-                       if (terminateProcess(dp, MERODB))
-                               dp->pid = -1;
+                       terminateProcess(dp, MERODB);
                        msab_freeStatus(stats);
                        pthread_mutex_unlock(&dp->fork_lock);
                        return(newErr(
diff --git a/tools/merovingian/daemon/merovingian.c 
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -318,8 +318,7 @@ doTerminateProcess(void *p)
 {
        dpair dp = p;
        pthread_mutex_lock(&dp->fork_lock);
-       if (dp->pid != -1 && terminateProcess(dp, dp->type))
-               dp->pid = -1;
+       terminateProcess(dp, dp->type);
        pthread_mutex_unlock(&dp->fork_lock);
        return NULL;
 }
diff --git a/tools/merovingian/daemon/merovingian.h 
b/tools/merovingian/daemon/merovingian.h
--- a/tools/merovingian/daemon/merovingian.h
+++ b/tools/merovingian/daemon/merovingian.h
@@ -60,7 +60,7 @@ typedef struct _dpair {
 
 char *newErr(_In_z_ _Printf_format_string_ const char *fmt, ...)
        __attribute__((__format__(__printf__, 1, 2)));
-bool terminateProcess(dpair dp, mtype type);
+void terminateProcess(dpair dp, mtype type);
 void logFD(int fd, char *type, char *dbname, long long int pid, FILE *stream, 
int rest);
 
 extern char *_mero_mserver;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to