diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-09-25 17:26:40 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-09-25 18:19:03 -0400 |
commit | dd87b1840c966fd25b81a7aa1071e8488c624db8 (patch) | |
tree | 09ffe3fb255a7e32daa18c5f7b0ca449717f9260 | |
parent | 22259a00fdb54dee818eeb1019421e2c516a330d (diff) |
journal-remote: fix counting of events written
After recent changes the number was always reported as 0, because
the accounting was done server_destroy(), called after the message was
already printed. But even before this change, the counts were wrong
because seqnum start at 0 only for newly created journal files, so when
appending to existing files, the calculated count was wrong anyway.
Also do some variable renaming for consistency and disable some low-level
debug messages.
-rw-r--r-- | src/journal-remote/journal-remote-parse.c | 6 | ||||
-rw-r--r-- | src/journal-remote/journal-remote-write.c | 44 |
2 files changed, 27 insertions, 23 deletions
diff --git a/src/journal-remote/journal-remote-parse.c b/src/journal-remote/journal-remote-parse.c index e7eb1516fb..224e8f140b 100644 --- a/src/journal-remote/journal-remote-parse.c +++ b/src/journal-remote/journal-remote-parse.c @@ -367,7 +367,7 @@ int process_data(RemoteSource *source) { assert(source->data_size == 0); r = get_data_size(source); - log_debug("get_data_size() -> %d", r); + // log_debug("get_data_size() -> %d", r); if (r < 0) return r; if (r == 0) { @@ -386,7 +386,7 @@ int process_data(RemoteSource *source) { assert(source->data_size > 0); r = get_data_data(source, &data); - log_debug("get_data_data() -> %d", r); + // log_debug("get_data_data() -> %d", r); if (r < 0) return r; if (r == 0) { @@ -409,7 +409,7 @@ int process_data(RemoteSource *source) { case STATE_DATA_FINISH: r = get_data_newline(source); - log_debug("get_data_newline() -> %d", r); + // log_debug("get_data_newline() -> %d", r); if (r < 0) return r; if (r == 0) { diff --git a/src/journal-remote/journal-remote-write.c b/src/journal-remote/journal-remote-write.c index 8ede950bea..0139f851a5 100644 --- a/src/journal-remote/journal-remote-write.c +++ b/src/journal-remote/journal-remote-write.c @@ -99,11 +99,8 @@ Writer* writer_free(Writer *w) { journal_file_close(w->journal); } - if (w->server) { - w->server->event_count += w->seqnum; - if (w->hashmap_key) - hashmap_remove(w->server->writers, w->hashmap_key); - } + if (w->server && w->hashmap_key) + hashmap_remove(w->server->writers, w->hashmap_key); free(w->hashmap_key); @@ -129,40 +126,47 @@ Writer* writer_ref(Writer *w) { return w; } - -int writer_write(Writer *s, +int writer_write(Writer *w, struct iovec_wrapper *iovw, dual_timestamp *ts, bool compress, bool seal) { int r; - assert(s); + assert(w); assert(iovw); assert(iovw->count > 0); - if (journal_file_rotate_suggested(s->journal, 0)) { + if (journal_file_rotate_suggested(w->journal, 0)) { log_info("%s: Journal header limits reached or header out-of-date, rotating", - s->journal->path); - r = do_rotate(&s->journal, compress, seal); + w->journal->path); + r = do_rotate(&w->journal, compress, seal); if (r < 0) return r; } - r = journal_file_append_entry(s->journal, ts, iovw->iovec, iovw->count, - &s->seqnum, NULL, NULL); - if (r >= 0) + r = journal_file_append_entry(w->journal, ts, iovw->iovec, iovw->count, + &w->seqnum, NULL, NULL); + if (r >= 0) { + if (w->server) + w->server->event_count += 1; return 1; + } - log_debug("%s: Write failed, rotating: %s", s->journal->path, strerror(-r)); - r = do_rotate(&s->journal, compress, seal); + log_debug("%s: Write failed, rotating: %s", w->journal->path, strerror(-r)); + r = do_rotate(&w->journal, compress, seal); if (r < 0) return r; else - log_info("%s: Successfully rotated journal", s->journal->path); + log_info("%s: Successfully rotated journal", w->journal->path); log_debug("Retrying write."); - r = journal_file_append_entry(s->journal, ts, iovw->iovec, iovw->count, - &s->seqnum, NULL, NULL); - return r < 0 ? r : 1; + r = journal_file_append_entry(w->journal, ts, iovw->iovec, iovw->count, + &w->seqnum, NULL, NULL); + if (r < 0) + return r; + + if (w->server) + w->server->event_count += 1; + return 1; } |