Changeset: aa96638806b2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=aa96638806b2
Modified Files:
configure.ag
Branch: headless
Log Message:
Merge with default branch.
diffs (102 lines):
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -2167,9 +2167,9 @@
LIBS="$LIBS $pcre_LIBS"
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $pcre_CFLAGS"
- AC_RUN_IFELSE(AC_LANG_PROGRAM(
- [#include <pcre.h>],
- [int rc; pcre_config(PCRE_CONFIG_UTF8, &rc); exit(!rc);]),
+ AC_RUN_IFELSE([AC_LANG_PROGRAM(
+ [[#include <pcre.h>]],
+ [[int rc; pcre_config(PCRE_CONFIG_UTF8, &rc); exit(!rc);]])],
AC_MSG_RESULT([yes]),
have_pcre=no; AC_MSG_RESULT([no]),
AC_MSG_RESULT([assuming yes]))
diff --git a/tools/merovingian/ChangeLog b/tools/merovingian/ChangeLog
--- a/tools/merovingian/ChangeLog
+++ b/tools/merovingian/ChangeLog
@@ -1,3 +1,6 @@
# ChangeLog file for sql/src/backends/monet5/merovingian
# This file is updated with mchangelog
+* Fri Apr 29 2011 Fabian Groffen <[email protected]>
+- added status property to get command
+
diff --git a/tools/merovingian/daemon/argvcmds.c
b/tools/merovingian/daemon/argvcmds.c
--- a/tools/merovingian/daemon/argvcmds.c
+++ b/tools/merovingian/daemon/argvcmds.c
@@ -26,6 +26,7 @@
#include <sys/stat.h>
#include <signal.h> /* kill */
+#include <mutils.h> /* MT_lockf */
#include <utils/utils.h>
#include <utils/properties.h>
@@ -172,7 +173,7 @@
kv = ckv;
property = alloca(sizeof(char) * 512);
/* hardwired read-only properties */
- off += snprintf(property, 512, "hostname,dbfarm,mserver");
+ off += snprintf(property, 512,
"hostname,dbfarm,status,mserver");
while (kv->key != NULL) {
off += snprintf(property + off, 512 - off, ",%s",
kv->key);
kv++;
@@ -184,6 +185,13 @@
doall = 0;
}
+ /* chdir to dbfarm so we can open relative files (like pidfile) */
+ if (chdir(dbfarm) < 0) {
+ fprintf(stderr, "could not move to dbfarm '%s': %s\n",
+ dbfarm, strerror(errno));
+ return(1);
+ }
+
printf(" property value\n");
while ((p = strtok(property, ",")) != NULL) {
property = NULL;
@@ -207,6 +215,29 @@
snprintf(buf, sizeof(buf), "%s/" CONTROL_SOCK "%d",
value, kv->ival);
value = buf;
+ } else if (strcmp(p, "status") == 0) {
+ /* check if there is a merovingian serving this dbfarm
*/
+ int ret;
+ if ((ret = MT_lockf(".merovingian_lock", F_TLOCK, 4,
1)) == -1) {
+ /* locking failed, merovingian is running */
+ FILE *pf;
+ char *pfile = getConfVal(ckv, "pidfile");
+
+ if (pfile != NULL && (pf = fopen(pfile, "r"))
!= NULL &&
+ fgets(buf, sizeof(buf), pf) !=
NULL)
+ {
+ int meropid = atoi(buf);
+ snprintf(buf, sizeof(buf),
"monetdbd[%d] is serving this dbfarm", meropid);
+ value = buf;
+ } else {
+ value = "a monetdbd is serving this
dbfarm, "
+ "but a pidfile was not found/is
corrupt";
+ }
+ } else {
+ if (ret >= 0)
+ close(ret); /* release a possible lock
*/
+ value = "no monetdbd is serving this dbfarm";
+ }
} else {
kv = findConfKey(ckv, p);
if (kv == NULL) {
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
@@ -59,7 +59,7 @@
#include "monetdb_config.h"
#include <msabaoth.h>
-#include <mutils.h>
+#include <mutils.h> /* MT_lockf */
#include <utils/utils.h>
#include <utils/properties.h>
#include <utils/glob.h>
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list