Le 06/10/2026 à 11:12 AM, ygkat a écrit :
From: Yeonggi Kim <[email protected]>Hi, Since 5da704b55 ("MEDIUM: log: Update the log applet to use its own buffers"), merged in 3.3-dev4, syslog_io_handler() returns early on an empty input buffer and no longer reaches applet_getchar(), which is where it noticed the client's shutdown. A TCP syslog session of a log-forward section whose client closes after its last message was consumed therefore stays open. A log-forward section does not inherit "timeout client" from the defaults section, so without one set in the section, the session never ends. Impact: each such client leaves a session behind, and a soft-stop then waits for "hard-stop-after" (forever without it). We hit it on 3.4 with a "ring" forwarding to a log-forward section of the same process: on reload, the ring's forwarder closes its connection, the log-forward session stays, and the old process is only stopped by "hard-stop-after". A reproducer is in the commit message of 1/2. The series: - 1/2 lets an empty buffer reach applet_getchar() again, and only leaves early when no input buffer is available, like the dns and peers applets do. - 2/2 adds reg-tests/log/log_forward_tcp_close.vtc. It fails (timeout) without 1/2 on master bd884a2, 3.4.6 and 3.3.16, and passes with it, as well as on 3.2.25, which is not affected. The other reg-tests/log tests and reg-tests/ssl/log_forward_ssl.vtc pass with and without the series. Both should be backported as far as 3.3. Thanks, Yeonggi Kim Yeonggi Kim (2): BUG/MEDIUM: log: do not ignore the peer's shutdown in the syslog applet REGTESTS: log: check that a log-forward TCP session ends on client close reg-tests/log/log_forward_tcp_close.vtc | 60 +++++++++++++++++++++++++ src/log.c | 7 ++- 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 reg-tests/log/log_forward_tcp_close.vtc
Thanks ! now merged. Just a quick note, for next contributions, try to add the reg-tests in the patch fixing the bug. This simplify a bit the backports.
-- Christopher Faulet

