[syslog-ng] [Bug 154] Processes forked via program() do not properly terminate

bugzilla at bugzilla.balabit.com bugzilla at bugzilla.balabit.com
Wed Jan 18 17:01:28 CET 2012


https://bugzilla.balabit.com/show_bug.cgi?id=154





--- Comment #4 from Balazs Scheidler <bazsi at balabit.hu>  2012-01-18 17:01:28 ---
Hmm.. can you check if this change fixes the issue for you?

diff --git a/modules/afprog/afprog.c b/modules/afprog/afprog.c
index d3e0d6d..4ed66c4 100644
--- a/modules/afprog/afprog.c
+++ b/modules/afprog/afprog.c
@@ -178,7 +178,7 @@ afprogram_sd_deinit(LogPipe *s)
                   evt_tag_str("cmdline", self->cmdline->str),
                   evt_tag_int("child_pid", self->pid),
                   NULL);
-      kill(self->pid, SIGTERM);
+      kill(-self->pid, SIGTERM);
       self->pid = -1;
     }

@@ -296,7 +296,7 @@ afprogram_dd_deinit(LogPipe *s)
                   evt_tag_str("cmdline", self->cmdline->str),
                   evt_tag_int("child_pid", self->pid),
                   NULL);
-      kill(self->pid, SIGTERM);
+      kill(-self->pid, SIGTERM);
       self->pid = -1;
     }
   if (self->writer)


This makes syslog-ng to send signals to the whole process group. I've just tried on our Solaris 10 system, that once I start a process in "sh", whenever
sh receives a signal, it is indeed not propagated to the child processes.

When sending signals to the whole process group, it works, that's what the patch above does.


-- 
Configure bugmail: https://bugzilla.balabit.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.


More information about the syslog-ng mailing list