From: Aurelien DARRAGON Date: Thu, 22 Jun 2023 15:04:43 +0000 (+0200) Subject: MINOR: sink: inform the user when logs will be implicitly truncated X-Git-Tag: v2.9-dev5~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fdf82d058b5ce2ce3a99f14e75754888cbe2fde6;p=thirdparty%2Fhaproxy.git 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" --- diff --git a/src/sink.c b/src/sink.c index 33824633ed..178afcb8cb 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; }