[syslog-ng] Message loss: update 1

Vincent Haverlant vincent at haverlant.org
Thu Mar 9 11:27:51 CET 2006


Hello Guys,

Here's an update on my investigation (still using latest 1.9.9 snapshot on Solaris 8):
- I have proof (snoop/tcpdump) that all sent packets indeed arrive at the
  network interface of my syslog server

- I have validated, using a simple while { recvfrom; printf } loop that all udp
  packets CAN go through the network layer with the default system buffer
  settings without any packet loss.

- By adding a debugging mesage right after the recvfrom call in
  syslog-ng (in fd_do_read), I can validate that no message that is
  received that way is lost within syslog-ng. However I still observe a
  loss of messages.

- I do not see a significant increase in udpInOverflows during the
  tests. Even though through the day, this value may increase of a few
  units.

Default buffer settings are:
ndd /dev/udp udp_recv_hiwat
65536
ndd /dev/udp udp_max_buf   
1048576

Meaning that the default socket buffer size is 64k. IT CANNOT BE
INCREASED FURTHER UP. I thus decided to the following code:
----
int rcvbuflen=1048576;
setsockopt(sock, SOL_SOCKET, SO_RCVBUF, &rcvbuflen, sizeof(rcvbuflen));
----
in g_sockaddr_inet_bind_prepare which apparently solved my problem or at
least allowed my test to pass. 
This does not guarantee that when the traffic increases further up for
any reason, I will not jump once again to the limit of the socket
buffer.

I still have one problem though: why didn't the packet show up in
udpInOverflow when they should have ? I'll keep you updated when I find
out. Also I'll try to provide a patch for the setsockop stuff but not
being a good developper it might be better if one of you official
syslog-ng team member took it from here.

Keep up the good work...
Vincent.
-- 
   .~.     Vincent Haverlant  -- Galadril -- #ICQ: 35695155   
   /V\      MSN: vincent_msn at haverlant.org  -- http://www.haverlant.org/
  /( )\      Parinux member: http://www.parinux.org/
  ^^-^^       GPG: 8FEA 52C2 5C54 A201 2375  0FA5 AF2E 1881 92D0 EE84



More information about the syslog-ng mailing list