From fdf82d058b5ce2ce3a99f14e75754888cbe2fde6 Mon Sep 17 00:00:00 2001 From: Aurelien DARRAGON Date: Thu, 22 Jun 2023 17:04:43 +0200 Subject: [PATCH] MINOR: sink: inform the user when logs will be implicitly truncated Consider the following example: |log ring@test-ring len 2000 local0 | |ring test-ring | maxlen 1000 This would result in emitted logs being silently truncated to 1000 because test-ring maxlen is smaller than the log directive maxlen. In this patch we're adding an extra check in post_sink_resolve() to detect this kind of confusing setups and warn the user about the implicit truncation when DIAG mode is on. This commit depends on: - "MINOR: sink: simplify post_sink_resolve function" --- src/sink.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/sink.c b/src/sink.c index 33824633e..178afcb8c 100644 --- a/src/sink.c +++ b/src/sink.c @@ -1305,6 +1305,12 @@ int sink_postresolve_logsrvs(struct list *logsrvs, const char *section, const ch logsrv->conf.file, logsrv->conf.line, logsrv->ring_name, (unsigned long)ring_max_payload(sink->ctx.ring)); } + else if (sink && logsrv->maxlen > sink->maxlen) { + _e_sink_postresolve_logsrvs(ha_diag_warning, "log server", "uses a ring with a smaller maxlen than the one specified on the log directive ('%s' has maxlen = %d), logs will be truncated according to the lowest maxlen between the two.", + section, section_name, + logsrv->conf.file, logsrv->conf.line, + logsrv->ring_name, sink->maxlen); + } logsrv->sink = sink; }