Changeset: bb7c6f07af0f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/bb7c6f07af0f
Modified Files:
gdk/gdk_tracer.c
tools/monetdbe/monetdbe.c
Branch: Jul2021
Log Message:
At an embedded connection set the GDK error buffer and use it to retrieve GDK
errors, but don't print to the tracer file
diffs (56 lines):
diff --git a/gdk/gdk_tracer.c b/gdk/gdk_tracer.c
--- a/gdk/gdk_tracer.c
+++ b/gdk/gdk_tracer.c
@@ -454,9 +454,6 @@ GDKtracer_log(const char *file, const ch
const char *syserr,
const char *fmt, ...)
{
- if ((adapter_t) ATOMIC_GET(&cur_adapter) == MBEDDED)
- return;
-
int bytes_written;
char buffer[512]; /* should be plenty big enough for a message */
va_list va;
@@ -501,7 +498,8 @@ GDKtracer_log(const char *file, const ch
}
va_end(va);
if (bytes_written < 0) {
- GDK_TRACER_EXCEPTION("Failed to write logs\n");
+ if ((adapter_t) ATOMIC_GET(&cur_adapter) != MBEDDED)
+ GDK_TRACER_EXCEPTION("Failed to write logs\n");
return;
}
char *p;
@@ -521,6 +519,10 @@ GDKtracer_log(const char *file, const ch
}
}
+ /* don't write to file on embedded case, but set the GDK error buffer */
+ if ((adapter_t) ATOMIC_GET(&cur_adapter) == MBEDDED)
+ return;
+
if (level <= M_WARNING) {
fprintf(stderr, "#%s%s%s: %s: %s%s%s%s\n",
add_ts ? ts : "",
diff --git a/tools/monetdbe/monetdbe.c b/tools/monetdbe/monetdbe.c
--- a/tools/monetdbe/monetdbe.c
+++ b/tools/monetdbe/monetdbe.c
@@ -546,6 +546,18 @@ monetdbe_open_internal(monetdbe_database
mdbe->msg = createException(MAL,
"monetdbe.monetdbe_open_internal", "Failed to initialize client");
goto cleanup;
}
+ /* MCinitClientThread can't be exported on Jul2021, so use this
workaround for now */
+ mdbe->c->errbuf = GDKerrbuf;
+ if (mdbe->c->errbuf == NULL) {
+ char *n = GDKzalloc(GDKMAXERRLEN);
+ if ( n == NULL){
+ mdbe->msg = createException(MAL,
"monetdbe.monetdbe_open_internal", MAL_MALLOC_FAIL);
+ goto cleanup;
+ }
+ GDKsetbuf(n);
+ mdbe->c->errbuf = GDKerrbuf;
+ } else
+ mdbe->c->errbuf[0] = 0;
mdbe->c->curmodule = mdbe->c->usermodule = userModule();
mdbe->c->workerlimit = monetdbe_workers_internal(mdbe, opts);
mdbe->c->memorylimit = monetdbe_memory_internal(mdbe, opts);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list