Bazsi, you are awesome. Dropped in a new syslog-ng binary with that patch applied and I can no longer repro the lockup! Szalay, I had some straces and ldd&#39;s for ya but then I saw Tim Rupp had pasted in better ones in his &quot;pipe causing lockup?&quot; thread, and the patch for that worked. Thanks for the quick response, sorry for my slow one, I had gone away for the weekend.<div>
<br></div><div>Regards,</div><div><br></div><div>-Lance<br><br><div class="gmail_quote">On Mon, Dec 7, 2009 at 4:58 AM, Balazs Scheidler <span dir="ltr">&lt;<a href="mailto:bazsi@balabit.hu">bazsi@balabit.hu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Thu, 2009-12-03 at 20:05 -0800, Lance Laursen wrote:<br>
</div><div><div></div><div class="h5">&gt; Hello,<br>
&gt;<br>
&gt;<br>
&gt; I&#39;m having problems with machines eventually hanging on all processes<br>
&gt; that write to /dev/log when using unix-dgram(&quot;/dev/log&quot;) with<br>
&gt; Syslog-NG 3.0.4. The servers run fine for a while and hum along as<br>
&gt; expected. Unfortunately the success does not last, with various<br>
&gt; programs completely hanging after an undetermined time. Having an<br>
&gt; existing root shell as this happens allows me to kill syslog-ng,<br>
&gt; freeing up all locks.<br>
&gt;<br>
&gt;<br>
&gt; Repro&#39;ing this is...well, annoying. I have 300+ servers running this<br>
&gt; build of syslog-ng fine, all using unix-stream(). The 4 servers that<br>
&gt; are locking up are the only ones I have running unix-dgram().<br>
&gt; Completely fresh ubuntu 8.04 installs with syslog-ng 3.0.4, identical<br>
&gt; to all other boxes aside from the one syslog-ng option. I&#39;ve got<br>
&gt; strace output that is hanging after programs try to write to /dev/log<br>
&gt; as well.<br>
&gt;<br>
&gt;<br>
&gt; I&#39;m currently doing a repro by running &quot;while true ; do logger -p<br>
&gt; <a href="http://local0.info" target="_blank">local0.info</a> ...longest_message_possible... ; sleep 1s ; done&quot; in<br>
&gt; non-exact science and have managed to pile things up after just over<br>
&gt; 120 messages, or two minutes. I can still hop around as root, but all<br>
&gt; programs that try to write to /dev/log pile up. The pile up seems to<br>
&gt; be log-size/throughput based, not time-based after some rudimentary<br>
&gt; tests - though it could be something random that is triggering it<br>
&gt; while my crappy tests are running. My next test plans to have small<br>
&gt; log messages in very rapid succession.<br>
&gt;<br>
&gt;<br>
&gt; I&#39;m running:<br>
&gt; # uname -a<br>
&gt; Linux tny0032 2.6.24-24-generic #1 SMP Tue Jul 7 19:10:36 UTC 2009<br>
&gt; x86_64 GNU/Linux<br>
&gt; # cat /etc/debian_version<br>
&gt; lenny/sid<br>
&gt; (ubuntu 8.04)<br>
&gt;<br>
&gt;<br>
&gt; Here&#39;s my source definition:<br>
&gt; # all known message sources<br>
&gt; source s_all {<br>
&gt;         internal();<br>
&gt;         unix-dgram(&quot;/dev/log&quot;);<br>
&gt;         file(&quot;/proc/kmsg&quot; program_override(&quot;kernel: &quot;));<br>
&gt; };<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Here&#39;s some strace output that locks after trying to write<br>
&gt; to /dev/log:<br>
&gt; # strace su - lance<br>
&gt; ...<br>
&gt; ...<br>
&gt; stat(&quot;/etc/localtime&quot;, {st_mode=S_IFREG|0644, st_size=118, ...}) = 0<br>
&gt; socket(PF_FILE, SOCK_DGRAM, 0) = 3<br>
&gt; fcntl(3, F_SETFD, FD_CLOEXEC) = 0<br>
&gt; connect(3, {sa_family=AF_FILE, path=&quot;/dev/log&quot;}, 110) = 0<br>
&gt; sendto(3, &quot;&lt;85&gt;Dec 4 02:12:43 su[7086]: pa&quot;..., 148, MSG_NOSIGNAL,<br>
&gt; NULL, 0<br>
&gt;<br>
&gt;<br>
&gt; # strace logger -p <a href="http://local0.info" target="_blank">local0.info</a> lalala<br>
&gt; produces the same lock-point as above.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; I thought dgram should be connectionless? I&#39;m not sure how syslog-ng<br>
&gt; could be locking up resources. Has anyone seen this before? I will<br>
&gt; continue looking for a better repro case, if anyone has any ideas<br>
&gt; though shout.<br>
&gt;<br>
&gt;<br>
&gt; I am using unix-dgram solely because it does not break to a new log<br>
&gt; entry on NewLines. I was encountering a problem where, using<br>
&gt; unix-stream, lighttpd&#39;s multi-line log output was getting broken up<br>
&gt; into multiple syslog lines. This would have been fine, except when the<br>
&gt; new line is broken out and made into new log entries, the $hostname<br>
&gt; and $program fields get stripped out, leaving me with just $date $msg.<br>
&gt; This basically negated the ability to filter and relay logs<br>
&gt; effectively. I can elaborate further here if requested, but making<br>
&gt; unix-stream behave the same as unix-dgram with regards to multi-line<br>
&gt; log messages would solve all my problems.<br>
<br>
<br>
</div></div>This should probably be caused by the same problem I answered in the<br>
&quot;pipe causing lockup&quot; thread yesterday.<br>
<br>
This patch should fix it (you can find it in the git repo):<br>
<div class="im"><br>
commit 495bdc3690fe1c01ed95b29f16e97829444973ee<br>
Author: Balazs Scheidler &lt;<a href="mailto:bazsi@balabit.hu">bazsi@balabit.hu</a>&gt;<br>
Date:   Mon Dec 7 13:36:30 2009 +0100<br>
<br>
    The flow-control flag was sometimes enabled even if not requested by the user<br>
<br>
    In case a final or fallback flag was enabled on a log statement, it could enable<br>
    the flow-control on the same level.<br>
<br>
<br>
<br>
</div><font color="#888888">--<br>
Bazsi<br>
</font><div><div></div><div class="h5"><br>
<br>
______________________________________________________________________________<br>
Member info: <a href="https://lists.balabit.hu/mailman/listinfo/syslog-ng" target="_blank">https://lists.balabit.hu/mailman/listinfo/syslog-ng</a><br>
Documentation: <a href="http://www.balabit.com/support/documentation/?product=syslog-ng" target="_blank">http://www.balabit.com/support/documentation/?product=syslog-ng</a><br>
FAQ: <a href="http://www.campin.net/syslog-ng/faq.html" target="_blank">http://www.campin.net/syslog-ng/faq.html</a><br>
<br>
<br>
______________________________________________________________________<br>
This email has been scanned by the MessageLabs Email Security System.<br>
For more information please visit <a href="http://www.messagelabs.com/email" target="_blank">http://www.messagelabs.com/email</a><br>
______________________________________________________________________<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Lance Laursen<br>Demonware Systems Engineer<br>1-604-689-4594 x3702<br>
</div>