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.
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user