This bug caused the last line in each journal file to be processed a
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 29 Sep 2008 20:00:34 +0000 (20:00 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Mon, 29 Sep 2008 20:00:34 +0000 (20:00 +0000)
second time.  Since it had been modified due to tokenizing, it failed
syntax check.  The daemon would always record one failed line at
end-of-journal as a result.  No data loss incurred by this bug. -- kevin

git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1548 a5681a0c-68f1-0310-ab6d-d61299d08faa

src/rrd_daemon.c

index abcb788..ead969b 100644 (file)
@@ -1508,7 +1508,8 @@ static int journal_replay (const char *file) /* {{{ */
     size_t entry_len;
 
     ++line;
-    fgets(entry, sizeof(entry), fh);
+    if (fgets(entry, sizeof(entry), fh) == NULL)
+      break;
     entry_len = strlen(entry);
 
     /* check \n termination in case journal writing crashed mid-line */