Changeset: d98ed8847c7c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/d98ed8847c7c Modified Files: tools/merovingian/ChangeLog.Jul2021 tools/merovingian/daemon/merovingian.c Branch: Jul2021 Log Message:
When logging "the rest" of the output, don't repeat message indefinitely. diffs (59 lines): diff --git a/tools/merovingian/ChangeLog.Jul2021 b/tools/merovingian/ChangeLog.Jul2021 --- a/tools/merovingian/ChangeLog.Jul2021 +++ b/tools/merovingian/ChangeLog.Jul2021 @@ -1,3 +1,7 @@ # ChangeLog file for sql/src/backends/monet5/merovingian # This file is updated with mchangelog +* Wed Aug 24 2022 Sjoerd Mullender <sjo...@acm.org> +- In certain cases a log message was logged over and over again. + This has been fixed. + 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 @@ -137,6 +137,7 @@ logFD(dpair dp, int fd, const char *type time_t now; char buf[8096]; ssize_t len = 0; + ssize_t last = 0; char *p, *q; struct tm *tmp; char mytime[20]; @@ -147,8 +148,10 @@ logFD(dpair dp, int fd, const char *type ssize_t n; repeat: n = read(dp->input[fd].fd, buf + len, sizeof(buf) - len - 1); - if (n <= 0) + if (n <= 0) { + rest = false; break; + } len += n; buf[len] = 0; } while (buf[len - 1] != '\n' && len < (ssize_t) sizeof(buf) - 1); @@ -157,7 +160,7 @@ logFD(dpair dp, int fd, const char *type now = time(NULL); tmp = localtime(&now); strftime(mytime, sizeof(mytime), "%Y-%m-%d %H:%M:%S", tmp); - for (q = buf; *q; q = p + 1) { + for (q = buf + last; *q; q = p + 1) { p = strchr(q, '\n'); if (p == NULL) { if (q > buf) { @@ -165,6 +168,7 @@ logFD(dpair dp, int fd, const char *type * just continue reading */ len = strlen(q); memmove(buf, q, len); + last = 0; goto repeat; } /* we must have received a ridiculously long line */ @@ -175,6 +179,7 @@ logFD(dpair dp, int fd, const char *type mytime, type, dbname, pid, q); break; } + last = p + 1 - buf; if (p == q) { /* empty line, don't bother */ continue; _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org