Changeset: da600256f54f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/da600256f54f
Modified Files:
gdk/gdk_logger.c
Branch: default
Log Message:
Thinko in implementation of --process-wal-and-exit.
We need to commit the WAL after it was read and exit after that.
diffs (51 lines):
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -2277,23 +2277,22 @@ log_load(const char *fn, logger *lg, cha
if (readlogs) {
ulng log_id = lg->saved_id + 1;
+ bool earlyexit = GDKgetenv_isyes("process-wal-and-exit");
if (log_readlogs(lg, filename) != GDK_SUCCEED) {
goto error;
}
- if (GDKgetenv_isyes("process-wal-and-exit")) {
- printf("# mserver5 exiting\n");
- exit(0);
- }
- if (lg->postfuncp && (*lg->postfuncp) (lg->funcdata, lg) !=
GDK_SUCCEED)
- goto error;
- if (needsnew) {
- if (GDKmove(0, lg->dir, LOGFILE, NULL, lg->dir,
LOGFILE, "bak", true) != GDK_SUCCEED) {
- TRC_CRITICAL(GDK, "couldn't move log to
log.bak\n");
- return GDK_FAIL;
- }
- if (log_create_types_file(lg, filename) != GDK_SUCCEED)
{
- TRC_CRITICAL(GDK, "couldn't write new log\n");
- return GDK_FAIL;
+ if (!earlyexit) {
+ if (lg->postfuncp && (*lg->postfuncp) (lg->funcdata,
lg) != GDK_SUCCEED)
+ goto error;
+ if (needsnew) {
+ if (GDKmove(0, lg->dir, LOGFILE, NULL, lg->dir,
LOGFILE, "bak", true) != GDK_SUCCEED) {
+ TRC_CRITICAL(GDK, "couldn't move log to
log.bak\n");
+ return GDK_FAIL;
+ }
+ if (log_create_types_file(lg, filename) !=
GDK_SUCCEED) {
+ TRC_CRITICAL(GDK, "couldn't write new
log\n");
+ return GDK_FAIL;
+ }
}
}
dbg = ATOMIC_GET(&GDKdebug);
@@ -2304,6 +2303,10 @@ log_load(const char *fn, logger *lg, cha
ATOMIC_SET(&GDKdebug, dbg);
for (; log_id <= lg->saved_id; log_id++)
(void) log_cleanup(lg, log_id); /* ignore error of
removing file */
+ if (earlyexit) {
+ printf("# mserver5 exiting\n");
+ exit(0);
+ }
if (needsnew &&
GDKunlink(0, lg->dir, LOGFILE, "bak") != GDK_SUCCEED) {
TRC_CRITICAL(GDK, "couldn't remove old log.bak file\n");
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]