[syslog-ng]Strang behaviour of syslog-ng (and my program)

Antai Ning aning@jetnet.ca
Wed, 10 Jul 2002 13:37:37 -0400


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C22838.7B351070
Content-Type: text/plain;
	charset="iso-8859-1"

Hi Gurus,
 
I got some strange phenomemon with syslog-ng. Here is what I'm doing.
 
I configured syslog-ng to forward certain type of messages to a pipe. (say,
ALERT). I wrote a program in perl to read from the pipe and print them out.
The perl program first try to open the pipe and it'll block at the open
function untill syslog-ng has some messages to write to the pipe. Then the
perl program reads using IO::File can_read() function, with a 5 seconds
timeout. So the function looks like this: $sel->can_read(5). Then I send 10
valid messages to syslog-ng from a remote machine by UDP. To my supprise,
the perl program got only 2 of the 10!  Then I send another 1 valid message
to this syslog-ng after 5 minutes, and I got not only this message, but also
the 8 I lost last time! 
 
This happens only for the first 10 messages (which includes the opening of
the pipe). Everything is fine after the first round. It looks like it's
related to the pipe opening and messages get queued somewhere until later
messages trigger the queue to flush.
 
So what's really happening inside? And is there a solution?
 
 
Thanks,
 
Andy 

 


------_=_NextPart_001_01C22838.7B351070
Content-Type: text/html;
	charset="iso-8859-1"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>Message aggregation</TITLE>

<META content="MSHTML 5.50.4916.2300" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=710041517-10072002>Hi 
Gurus,</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=710041517-10072002>I got 
some strange phenomemon with syslog-ng. Here is what I'm 
doing.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=710041517-10072002>I 
configured syslog-ng to forward certain type of messages to a pipe. (say, 
ALERT). I wrote a program in perl&nbsp;to read from the pipe and print them out. 
The perl program&nbsp;first try to open the pipe and it'll block at the open 
function untill syslog-ng has some messages to write to the pipe. Then&nbsp;the 
perl program&nbsp;reads using IO::File can_read() function, with a 5 seconds 
timeout. So the function looks like this: $sel-&gt;can_read(5). Then I send 10 
valid messages to syslog-ng from a remote machine by UDP. To my supprise, the 
perl program&nbsp;got only 2 of the 10!&nbsp; Then I send another 1 valid 
message to this syslog-ng after 5 minutes, and I got&nbsp;not only 
this&nbsp;message, but also the 8 I lost last time!&nbsp;</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=710041517-10072002>This 
happens only for the first 10 messages (which includes the opening of the pipe). 
Everything is fine after the first round. It looks like&nbsp;it's related to the 
pipe opening and messages get queued somewhere until later messages&nbsp;trigger 
the queue to flush.</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN class=710041517-10072002>So 
what's really happening inside? And&nbsp;is there a 
solution?</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002>Thanks,</SPAN></FONT></DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial color=#0000ff size=2><SPAN 
class=710041517-10072002>Andy&nbsp;</SPAN></FONT></DIV>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"><FONT face=Arial color=#0000ff 
  size=2></FONT>&nbsp;</BLOCKQUOTE></BODY></HTML>

------_=_NextPart_001_01C22838.7B351070--