[syslog-ng] merging stuff from merge-queue/3.4

Balazs Scheidler bazsi77 at gmail.com
Sat Nov 17 21:33:02 CET 2012


----- Original message -----
> On 11/17/2012 09:00 AM, Balazs Scheidler wrote:
> > dbparser: support inheriting properties in a corellation action
> > 
> > I merged this one, although I have some doubts. It uses
> > log_msg_clone_cow(), which does have some tricky semantics, as it
> > assumes that the cloned message will not change, once cloned.
> > 
> > I was thinking about removing clone_cow() completely because of this
> > tricky stuff, and whenever we need a clone we're about to change the
> > LogMessage anyway, and delaying the actual change means that we have
> > to do two malloc() calls, instead of one.
> > 
> > Can you test whether changing the message that triggered the action
> > with a rewrite rule, keeps the cloned one intact? This would need a
> > parallel path to the db-parser().
> It seems, that log_msg_clone_cow write protects the original log 
> message, so trying to do a log_msg_set_value on the original message 
> will result in an assertion. Sorry I didn't realize this when doing the 
> original patch, explicitly copying all the name-value pairs seemed 
> inefficient, but this behaviour is not desirable. Should I rework the 
> patch this way or is there a better way of doing it?
> 

I'd drop clone_cow() now, and implement a proper clone that allocates the logmsg header and nvtable in a single block, and copies everything through.

that way clone+change becomes cheaper and you got a clone call that works in this case too.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.balabit.hu/pipermail/syslog-ng/attachments/20121117/863f0898/attachment.htm 


More information about the syslog-ng mailing list