[syslog-ng]TCP transport reliability

SZALAY Attila sasa@balabit.hu
Thu, 4 Jan 2001 20:58:46 +0100

Hi All!

On 2001 Jan 04, Jeffrey W. Baker wrote:
>          if (self->queue_size == self->queue_max) {
>                  /* fifo full */
>                  ol_string_free(string);
>                  return ST_FAIL | ST_OK;
>          }
> What do you think happens when this code is hit?  The log message is
> discarded and lost.  It cannot be read any other way.  When this block of
> code is executed, messages are lost.  Execution tracing shows that this
> block of code is sometimes executed.  Thus, messages will sometimes be
> lost.  QED.


> Your repeated assertions are no solution.  In practice, syslog-ng drops
> log messages.  I have seen it with my own eyes, and I have proved it
> logically above.  You have not given me any reason to believe otherwise.
> Your suggestion to raise the fifo size does not work for fast,
> steady-state log message generation.  I can raise the fifo size to
> 1,000,000 messages, and I get a syslog-ng process that consumes all
> available memory and still drops messages.

Yes again, and becouse of this, THERE ARE _NO_ SOLUTION for this problem.

If you pour water to a horn in full speed, the water will overflow.

Another example. (From a candy camera)

There was a conveyer belt. And a cakes go to this belt in every ten seconds.
The task was to put the cakes into boxes.
Everybody do it rights. But after a while the conveyer belt goes faster.
Every people reach his/her limit.
After this limit (when belt goes faster than this) cakes dropped at the end of
the conveyer belt.

This happens becouse input is faster than output. And _nobody_ can do anything
to interfere this.

But I have no state, when syslog-ng is the bottleneck.
More often the HDD or the network card(s).

PGP ID 0x8D143771, /C5 95 43 F8 6F 19 E8 29  53 5E 96 61 05 63 42 D0
GPG ID   ABA0E8B2, 45CF B559 8281 8091 8469  CACD DB71 AEFC ABA0 E8B2

I refused to attend his funeral. But I wrote a very nice letter
explaining that I approved of it. -- Mark Twain