<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#0050d0">
    <br>
    <br>
    Sent: Tue Nov 15 2011 12:37:46 GMT-0700 (MST)<br>
    From: Balazs Scheidler <a class="moz-txt-link-rfc2396E" href="mailto:bazsi@balabit.hu">&lt;bazsi@balabit.hu&gt;</a><br>
    To: Syslog-ng users' and developers' mailing list
    <a class="moz-txt-link-rfc2396E" href="mailto:syslog-ng@lists.balabit.hu">&lt;syslog-ng@lists.balabit.hu&gt;</a> <br>
    Subject: Re: [syslog-ng] syslog-ng 3.3.2 seg faulting sending
    message via tcp
    <blockquote cite="mid:1321385866.29612.1362.camel@bzorp" type="cite">
      <pre wrap="">On Sun, 2011-11-13 at 19:58 -0700, Patrick H. wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Syslog-ng 3.3.2 (obtained from
<a class="moz-txt-link-freetext" 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>) is segfaulting when it tries to send a message to a TCP destination. I'm asking here instead of a bug report because I didnt see a 3.3.2 release announcement, so not sure if this is the final build or not.

Anyway, gdb backtrace shows:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x40f67940 (LWP 29440)]
0x00002b047a812261 in log_pipe_queue (s=0x12d0d94f, msg=0x12d04400,
path_options=0x40f64150) at logpipe.h:288
288          s-&gt;queue(s, msg, path_options, s-&gt;queue_data);</pre>
      </blockquote>
    </blockquote>
    ...
    <blockquote cite="mid:1321385866.29612.1362.camel@bzorp" type="cite">
      <pre wrap="">I could reproduce a crash here, and this one solves it. (was related to
one of the leak fixes which went in before 3.3.2 was released)

$ git diff
diff --git a/lib/driver.h b/lib/driver.h
index c805da5..7f7acbd 100644
--- a/lib/driver.h
+++ b/lib/driver.h
@@ -188,7 +188,6 @@ log_dest_driver_release_queue(LogDestDriver *self,
LogQueue *q)
   if (q)
     {
       self-&gt;queues = g_list_remove(self-&gt;queues, q);
-      log_queue_unref(q);
 
       self-&gt;release_queue(self, q, self-&gt;release_queue_data);
     }

I still have to think through all consequences whether this reintroduces
a leak, but this seems to be right, I just have to go now.

PS: it warrants a 3.3.2 if this solves the issue for you.

</pre>
    </blockquote>
    <br>
    I've been running this on several machines through the day and they
    all appear stable.<br>
    Thanks<br>
  </body>
</html>