Changeset: 37c487721219 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=37c487721219
Modified Files:
gdk/gdk_logger.c
tools/merovingian/daemon/controlrunner.c
Branch: Dec2016
Log Message:
Merge with Jun2016 branch.
diffs (91 lines):
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -1377,8 +1377,6 @@ logger_load(int debug, const char* fn, c
/* this is intentional - even if catalog_bid is 0, but the logger is
shared,
* force it to find the persistent catalog */
if (catalog_bid == 0 && !lg->shared) {
- log_bid bid = 0;
-
/* catalog does not exist, so the log file also
* shouldn't exist */
if (fp != NULL) {
@@ -1401,22 +1399,19 @@ logger_load(int debug, const char* fn, c
/* give the catalog bats names so we can find them
* next time */
- bid = lg->catalog_bid->batCacheid;
- BBPincref(bid, TRUE);
+ BBPincref(lg->catalog_bid->batCacheid, TRUE);
snprintf(bak, sizeof(bak), "%s_catalog_bid", fn);
if (BBPrename(lg->catalog_bid->batCacheid, bak) < 0)
logger_fatal("logger_load: BBPrename to %s failed",
bak, 0, 0);
- bid = lg->catalog_nme->batCacheid;
- BBPincref(bid, TRUE);
+ BBPincref(lg->catalog_nme->batCacheid, TRUE);
snprintf(bak, sizeof(bak), "%s_catalog_nme", fn);
if (BBPrename(lg->catalog_nme->batCacheid, bak) < 0)
logger_fatal("logger_load: BBPrename to %s failed",
bak, 0, 0);
- bid = lg->dcatalog->batCacheid;
- BBPincref(bid, TRUE);
+ BBPincref(lg->dcatalog->batCacheid, TRUE);
snprintf(bak, sizeof(bak), "%s_dcatalog", fn);
if (BBPrename(lg->dcatalog->batCacheid, bak) < 0)
logger_fatal("logger_load: BBPrename to %s failed",
@@ -1484,7 +1479,6 @@ logger_load(int debug, const char* fn, c
if (d == NULL)
logger_fatal("Logger_new: cannot create "
"dcatalog bat", 0, 0, 0);
- BBPincref(d->batCacheid, TRUE);
if (BBPrename(d->batCacheid, bak) < 0)
logger_fatal("logger_load: BBPrename to %s
failed", bak, 0, 0);
}
@@ -1503,6 +1497,9 @@ logger_load(int debug, const char* fn, c
lg->catalog_bid = b;
lg->catalog_nme = n;
lg->dcatalog = d;
+ BBPincref(lg->catalog_bid->batCacheid, TRUE);
+ BBPincref(lg->catalog_nme->batCacheid, TRUE);
+ BBPincref(lg->dcatalog->batCacheid, TRUE);
BATloop(b, p, q) {
bat bid = *(log_bid *) Tloc(b, p);
oid pos = p;
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
@@ -338,13 +338,17 @@ static void ctl_handle_client(
dp = _mero_topdp->next; /* don't need the
console/log */
while (dp != NULL) {
if (dp->type == MERODB &&
strcmp(dp->dbname, q) == 0) {
-
pthread_mutex_unlock(&_mero_topdp_lock);
if (strcmp(p, "stop") == 0) {
-
terminateProcess(dp->pid, strdup(dp->dbname), dp->type, 1);
+ pid_t pid = dp->pid;
+ char *dbname =
strdup(dp->dbname);
+ mtype type = dp->type;
+
pthread_mutex_unlock(&_mero_topdp_lock);
+ terminateProcess(pid,
dbname, type, 1);
Mfprintf(_mero_ctlout,
"%s: stopped "
"database '%s'\n", origin, q);
} else {
kill(dp->pid, SIGKILL);
+
pthread_mutex_unlock(&_mero_topdp_lock);
Mfprintf(_mero_ctlout,
"%s: killed "
"database '%s'\n", origin, q);
}
@@ -353,8 +357,10 @@ static void ctl_handle_client(
break;
} else if (dp->type == MEROFUN &&
strcmp(dp->dbname, q) == 0) {
/* multiplexDestroy needs topdp
lock to remove itself */
+ char *dbname =
strdup(dp->dbname);
pthread_mutex_unlock(&_mero_topdp_lock);
- multiplexDestroy(dp->dbname);
+ multiplexDestroy(dbname);
+ free(dbname);
len = snprintf(buf2,
sizeof(buf2), "OK\n");
send_client("=");
break;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list