<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif;" dir="ltr">
<p style="margin-top:0;margin-bottom:0"></p>
<div>Hi,</div>
<div><br>
</div>
<div>we are in the middle of an investigation of a partial-write issue and found a bug that can lead to message loss in some circumstances, even when reliable diskbuffer is used.</div>
<div>We marked this bug as release critical. Fortunately we fixed the issue a few minutes ago, so we are going to release 3.17.2 that contains the fix ( https://github.com/balabit/syslog-ng/pull/2224 ).</div>
<div><br>
</div>
<div><br>
</div>
<div>We don't have an automated testcase for this, actually it is in progress(this is why we didn't catch the bug), but sharing the manual reproduction:</div>
<div><br>
</div>
<div>* listen with netcat (and use pv tool to make partial write happen)</div>
<div>  nc -l 61002 | pv -L 40</div>
<div>* run syslog-ng with the following config:</div>
<div>@version: 3.17</div>
<div>options {</div>
<div>   time_reopen(3);</div>
<div>   stats_level(1);</div>
<div>};</div>
<div>source s_network {</div>
<div>   network(ip("127.0.0.1")</div>
<div>   port(5555));</div>
<div>};</div>
<div><br>
</div>
<div>destination d_network {</div>
<div>   network("127.0.0.1" disk_buffer(mem-buf-size(1000) disk-buf-size(1048576) reliable(yes) dir('/tmp/dq'))</div>
<div>   ip_protocol(4)</div>
<div>   port(6666)</div>
<div>   so-sndbuf(4096));</div>
<div>};</div>
<div><br>
</div>
<div>log {</div>
<div>  source(s_network);</div>
<div>  destination(d_network);</div>
<div><br>
</div>
<div>  flags(flow-control);</div>
<div>};</div>
<div><br>
</div>
<div>* send logs</div>
<div>  loggen -r 100000 -I 200 127.0.0.1 10001 --inet</div>
<div><br>
</div>
<div>* wait a few seconds then stop netcat</div>
<div><br>
</div>
<div>* result: syslog-ng will drops all the incoming messages</div>
<div><br>
</div>
<div><br>
</div>
<div>regards,</div>
<div>Laszlo Budai</div>
<br>
<p></p>
</div>
</body>
</html>