<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="Osso Notes">
<title></title></head>
<body>
<p>----- Original message -----
<br>>
<br>>
<br>> Sent: Tue Nov 15 2011 12:37:46 GMT-0700 (MST)
<br>> From: Balazs Scheidler <<a href="mailto:bazsi@balabit.hu">bazsi@balabit.hu</a>>
<br>> To: Syslog-ng users' and developers' mailing list
<br>> <<a href="mailto:syslog-ng@lists.balabit.hu">syslog-ng@lists.balabit.hu</a>>
<br>> Subject: Re: [syslog-ng] syslog-ng 3.3.2 seg faulting sending message
<br>> via tcp
<br>> > On Sun, 2011-11-13 at 19:58 -0700, Patrick H. wrote:
<br>> > > Syslog-ng 3.3.2 (obtained from
<br>> > > <a href="http://www.balabit.com/downloads/files?path=/syslog-ng/sources/3.3.2/source">http://www.balabit.com/downloads/files?path=/syslog-ng/sources/3.3.2/source</a>)
<br>> > > is segfaulting when it tries to send a message to a TCP destination.
<br>> > > I'm asking here instead of a bug report because I didnt see a 3.3.2
<br>> > > release announcement, so not sure if this is the final build or not.
<br>> > >
<br>> > > Anyway, gdb backtrace shows:
<br>> > > Program received signal SIGSEGV, Segmentation fault.
<br>> > > [Switching to Thread 0x40f67940 (LWP 29440)]
<br>> > > 0x00002b047a812261 in log_pipe_queue (s=0x12d0d94f, msg=0x12d04400,
<br>> > > path_options=0x40f64150) at logpipe.h:288
<br>> > > 288  s->queue(s, msg, path_options, s->queue_data);
<br>> ...
<br>> > I could reproduce a crash here, and this one solves it. (was related to
<br>> > one of the leak fixes which went in before 3.3.2 was released)
<br>> >
<br>> > $ git diff
<br>> > diff --git a/lib/driver.h b/lib/driver.h
<br>> > index c805da5..7f7acbd 100644
<br>> > --- a/lib/driver.h
<br>> > +++ b/lib/driver.h
<br>> > @@ -188,7 +188,6 @@ log_dest_driver_release_queue(LogDestDriver *self,
<br>> > LogQueue *q)
<br>> > if (q)
<br>> > {
<br>> > self->queues = g_list_remove(self->queues, q);
<br>> > -  log_queue_unref(q);
<br>> >
<br>> > self->release_queue(self, q, self->release_queue_data);
<br>> > }
<br>> >
<br>> > I still have to think through all consequences whether this
<br>> > reintroduces a leak, but this seems to be right, I just have to go now.
<br>> >
<br>> > PS: it warrants a 3.3.2 if this solves the issue for you.
<br>> >
<br>>
<br>> I've been running this on several machines through the day and they all
<br>> appear stable.
<br>
<br>great news. I'll do a quick validation and release 3.3.3 before the masses get hit by this problem.
<br>
<br>thanks for the feedback.</p>
</body>
</html>