[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.
Yes.
> 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