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"
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;
}