summaryrefslogtreecommitdiff
path: root/src/journal-remote/journal-remote-write.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-09-25 17:26:40 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-09-25 18:19:03 -0400
commitdd87b1840c966fd25b81a7aa1071e8488c624db8 (patch)
tree09ffe3fb255a7e32daa18c5f7b0ca449717f9260 /src/journal-remote/journal-remote-write.c
parent22259a00fdb54dee818eeb1019421e2c516a330d (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.
Diffstat (limited to 'src/journal-remote/journal-remote-write.c')
-rw-r--r--src/journal-remote/journal-remote-write.c44
1 files changed, 24 insertions, 20 deletions
diff --git a/src/journal-remote/journal-remote-write.c b/src/journal-remote/journal-remote-write.c
index 8ede950be..0139f851a 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;
}