Changeset: b18bf65990ad for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=b18bf65990ad
Modified Files:
gdk/gdk_bbp.c
gdk/gdk_bbp.h
tools/embedded/monetdb_embedded.c
tools/merovingian/daemon/controlrunner.c
tools/monetdbe/monetdbe.c
tools/mserver/mserver5.c
tools/mserver/shutdowntest.c
Branch: default
Log Message:
do not try to output errors during initialisation (even before GDKinit) in
embedded mode
diffs (170 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1110,7 +1110,7 @@ GDKinmemory(void)
/* all errors are fatal */
gdk_return
-BBPaddfarm(const char *dirname, int rolemask)
+BBPaddfarm(const char *dirname, int rolemask, int logerror)
{
struct stat st;
int i;
@@ -1123,21 +1123,25 @@ BBPaddfarm(const char *dirname, int role
return GDK_SUCCEED;
}
if (strchr(dirname, '\n') != NULL) {
- GDKerror("no newline allowed in directory name\n");
+ if (logerror)
+ GDKerror("no newline allowed in directory name\n");
return GDK_FAIL;
}
if (rolemask == 0 || (rolemask & 1 && BBPfarms[0].dirname != NULL)) {
- GDKerror("bad rolemask\n");
+ if (logerror)
+ GDKerror("bad rolemask\n");
return GDK_FAIL;
}
if (mkdir(dirname, MONETDB_DIRMODE) < 0) {
if (errno == EEXIST) {
if (stat(dirname, &st) == -1 || !S_ISDIR(st.st_mode)) {
- GDKerror("%s: not a directory\n", dirname);
+ if (logerror)
+ GDKerror("%s: not a directory\n",
dirname);
return GDK_FAIL;
}
} else {
- GDKsyserror("%s: cannot create directory\n", dirname);
+ if (logerror)
+ GDKsyserror("%s: cannot create directory\n",
dirname);
return GDK_FAIL;
}
}
@@ -1165,7 +1169,8 @@ BBPaddfarm(const char *dirname, int role
}
if (stat(bbpdir, &st) != -1 || errno != ENOENT)
{
GDKfree(bbpdir);
- GDKerror("%s is a database\n", dirname);
+ if (logerror)
+ GDKerror("%s is a database\n",
dirname);
return GDK_FAIL;
}
GDKfree(bbpdir);
@@ -1175,7 +1180,8 @@ BBPaddfarm(const char *dirname, int role
}
if (stat(bbpdir, &st) != -1 || errno != ENOENT)
{
GDKfree(bbpdir);
- GDKerror("%s is a database\n", dirname);
+ if (logerror)
+ GDKerror("%s is a database\n",
dirname);
return GDK_FAIL;
}
GDKfree(bbpdir);
@@ -1183,7 +1189,8 @@ BBPaddfarm(const char *dirname, int role
return GDK_SUCCEED;
}
}
- GDKerror("too many farms\n");
+ if (logerror)
+ GDKerror("too many farms\n");
return GDK_FAIL;
}
diff --git a/gdk/gdk_bbp.h b/gdk/gdk_bbp.h
--- a/gdk/gdk_bbp.h
+++ b/gdk/gdk_bbp.h
@@ -56,7 +56,7 @@
gdk_export bat getBBPsize(void); /* current occupied size of BBP array */
/* global calls */
-gdk_export gdk_return BBPaddfarm(const char *dirname, int rolemask);
+gdk_export gdk_return BBPaddfarm(const char *dirname, int rolemask, int
logerror);
/* update interface */
gdk_export void BBPclear(bat bid);
diff --git a/tools/embedded/monetdb_embedded.c
b/tools/embedded/monetdb_embedded.c
--- a/tools/embedded/monetdb_embedded.c
+++ b/tools/embedded/monetdb_embedded.c
@@ -459,14 +459,14 @@ monetdb_startup(char* dbdir)
goto cleanup;
}
if (!dbdir) { /* in-memory */
- if (BBPaddfarm(NULL, (1 << PERSISTENT) | (1 << TRANSIENT)) !=
GDK_SUCCEED) {
+ if (BBPaddfarm(NULL, (1 << PERSISTENT) | (1 << TRANSIENT), 0)
!= GDK_SUCCEED) {
mo_free_options(set, setlen);
msg = createException(MAL, "embedded.monetdb_startup",
"Cannot add in-memory farm");
goto cleanup;
}
} else {
- if (BBPaddfarm(dbdir, 1 << PERSISTENT) != GDK_SUCCEED ||
- BBPaddfarm(/*dbextra ? dbextra : */dbdir, 1 <<
TRANSIENT) != GDK_SUCCEED) {
+ if (BBPaddfarm(dbdir, 1 << PERSISTENT, 0) != GDK_SUCCEED ||
+ BBPaddfarm(/*dbextra ? dbextra : */dbdir, 1 <<
TRANSIENT, 0) != GDK_SUCCEED) {
mo_free_options(set, setlen);
msg = createException(MAL, "embedded.monetdb_startup",
"Cannot add farm %s", dbdir);
goto cleanup;
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
@@ -447,7 +447,7 @@ static void ctl_handle_client(
free(sadbfarm);
setlen =
mo_add_option(&set, setlen, opt_cmdline, "gdk_dbpath", buf2);
setlen =
mo_system_config(&set, setlen);
- if (BBPaddfarm(buf2, (1
<< PERSISTENT) | (1 << TRANSIENT)) != GDK_SUCCEED) {
+ if (BBPaddfarm(buf2, (1
<< PERSISTENT) | (1 << TRANSIENT), 1) != GDK_SUCCEED) {
Mfprintf(_mero_ctlerr, "%s: could not add farm to "
"'%s':
%d: %s\n", origin, q, errno, strerror(errno));
exit(0);
diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -460,14 +460,14 @@ monetdbe_startup(char* dbdir, monetdbe_o
}
if (!dbdir) { /* in-memory */
- if (BBPaddfarm(NULL, (1 << PERSISTENT) | (1 << TRANSIENT)) !=
GDK_SUCCEED) {
+ if (BBPaddfarm(NULL, (1 << PERSISTENT) | (1 << TRANSIENT), 0)
!= GDK_SUCCEED) {
mo_free_options(set, setlen);
msg = createException(MAL, "monetdbe.monetdbe_startup",
"Cannot add in-memory farm");
goto cleanup;
}
} else {
- if (BBPaddfarm(dbdir, 1 << PERSISTENT) != GDK_SUCCEED ||
- BBPaddfarm(/*dbextra ? dbextra : */dbdir, 1 <<
TRANSIENT) != GDK_SUCCEED) {
+ if (BBPaddfarm(dbdir, 1 << PERSISTENT, 0) != GDK_SUCCEED ||
+ BBPaddfarm(/*dbextra ? dbextra : */dbdir, 1 <<
TRANSIENT, 0) != GDK_SUCCEED) {
mo_free_options(set, setlen);
msg = createException(MAL, "monetdbe.monetdbe_startup",
"Cannot add farm %s", dbdir);
goto cleanup;
diff --git a/tools/mserver/mserver5.c b/tools/mserver/mserver5.c
--- a/tools/mserver/mserver5.c
+++ b/tools/mserver/mserver5.c
@@ -497,13 +497,13 @@ main(int argc, char **av)
}
}
if (inmemory) {
- if (BBPaddfarm(NULL, (1 << PERSISTENT) | (1 << TRANSIENT)) !=
GDK_SUCCEED) {
+ if (BBPaddfarm(NULL, (1 << PERSISTENT) | (1 << TRANSIENT), 1)
!= GDK_SUCCEED) {
fprintf(stderr, "!ERROR: cannot add in-memory farm\n");
exit(1);
}
} else {
- if (BBPaddfarm(dbpath, 1 << PERSISTENT) != GDK_SUCCEED ||
- BBPaddfarm(dbextra ? dbextra : dbpath, 1 << TRANSIENT) !=
GDK_SUCCEED) {
+ if (BBPaddfarm(dbpath, 1 << PERSISTENT, 1) != GDK_SUCCEED ||
+ BBPaddfarm(dbextra ? dbextra : dbpath, 1 << TRANSIENT, 1)
!= GDK_SUCCEED) {
fprintf(stderr, "!ERROR: cannot add farm\n");
exit(1);
}
diff --git a/tools/mserver/shutdowntest.c b/tools/mserver/shutdowntest.c
--- a/tools/mserver/shutdowntest.c
+++ b/tools/mserver/shutdowntest.c
@@ -127,7 +127,7 @@ static str monetdb_initialize(void) {
setlen = mo_builtin_settings(&set);
setlen = mo_add_option(&set, setlen, opt_cmdline, "gdk_dbpath", dbdir);
- if (BBPaddfarm(dbdir, (1 << PERSISTENT) | (1 << TRANSIENT)) !=
GDK_SUCCEED) {
+ if (BBPaddfarm(dbdir, (1 << PERSISTENT) | (1 << TRANSIENT), 0) !=
GDK_SUCCEED) {
retval = GDKstrdup("BBPaddfarm failed");
goto cleanup;
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list