[syslog-ng]Urgent: Mangled messages in pipe() destinations in versions >1.5.8

Balazs Scheidler bazsi@balabit.hu
Fri, 3 Jan 2003 10:40:51 +0100


On Thu, Jan 02, 2003 at 07:11:59PM +0100, Andreas Schulze wrote:
> Hello Balazs,
> 
> >>Balazs Scheidler wrote:
> >>
> >>I think, you changed the internal buffering from a line based buffer
> >>to byte based buffer between 1.5.8 and 1.5.9.
> >>In 1.5.7 there isn't that problem.
> >>Maybe, line based buffering seems a better idea in this context.
> >
> >Thanks for the detailed report. I think I have found the problem this time.
> >Can you check this patch?
> 
> I checked the patch. Using patched libol-0.3.6 and syslog-ng-1.5.24.
> It solves the message drops in pipes(). Thanks a lot for this.
> But it seems, it doesn't solve the mangled messages problem. :(
> 
> I try to explain it. Look at the following truss output.
> (Remember, that we use several log path's pointing to the same pipe(),
> so all fd's (13,18,24,41,54) points to /tmp/pipe e.g.
> fd 41 is the heavy loaded path and caused the EAGAIN's.)

Hmm... I see.. You should not point multiple destinations to the same pipe.
As each destination has its own buffer.

Is it not possible to separate the pipe to a single destination?

I'm thinking about the possibility of destination references, would that
solve your problem?

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1