Your message dated Wed, 30 Jan 2013 21:29:01 +0100 with message-id <20130130202901.GK8837@radis.cristau.org> and subject line Re: Bug#699318: unblock: spamassassin/3.3.2-5 has caused the Debian Bug report #699318, regarding unblock: spamassassin/3.3.2-5 to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 699318: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=699318 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: unblock: spamassassin/3.3.2-5
- From: Noah Meyerhans <noahm@debian.org>
- Date: Tue, 29 Jan 2013 23:06:31 -0800
- Message-id: <20130130070631.15808.71147.reportbug@ping.chartbeat.net>
Package: release.debian.org Severity: normal User: release.debian.org@packages.debian.org Usertags: unblock Please unblock package spamassassin 3.3.2-5. It contains a single change: The fix for the crash described in http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694504 The relevant changelog entry follows, and the full debdiff is attached. Thanks noah spamassassin (3.3.2-5) unstable; urgency=low * Import upstream's fix for a crash in SIGCHLD handler (Closes: #694504) -- Noah Meyerhans <noahm@debian.org> Mon, 28 Jan 2013 21:51:58 -0800 unblock spamassassin/3.3.2-5 -- System Information: Debian Release: 7.0 APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (x86_64) Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dashdiff -Nru spamassassin-3.3.2/debian/changelog spamassassin-3.3.2/debian/changelog --- spamassassin-3.3.2/debian/changelog 2012-08-13 22:29:36.000000000 -0700 +++ spamassassin-3.3.2/debian/changelog 2013-01-28 21:52:22.000000000 -0800 @@ -1,3 +1,9 @@ +spamassassin (3.3.2-5) unstable; urgency=low + + * Import upstream's fix for a crash in SIGCHLD handler (Closes: #694504) + + -- Noah Meyerhans <noahm@debian.org> Mon, 28 Jan 2013 21:51:58 -0800 + spamassassin (3.3.2-4) unstable; urgency=low * Incorporate upstream's fix for a bug where malformed multipart MIME diff -Nru spamassassin-3.3.2/debian/patches/95_bug694504-spamdforkscaling-crash spamassassin-3.3.2/debian/patches/95_bug694504-spamdforkscaling-crash --- spamassassin-3.3.2/debian/patches/95_bug694504-spamdforkscaling-crash 1969-12-31 16:00:00.000000000 -0800 +++ spamassassin-3.3.2/debian/patches/95_bug694504-spamdforkscaling-crash 2013-01-22 20:28:45.000000000 -0800 @@ -0,0 +1,110 @@ +Index: spamassassin-3.3.2/lib/Mail/SpamAssassin/Logger/Syslog.pm +=================================================================== +--- spamassassin-3.3.2.orig/lib/Mail/SpamAssassin/Logger/Syslog.pm 2013-01-22 20:19:12.000000000 -0800 ++++ spamassassin-3.3.2/lib/Mail/SpamAssassin/Logger/Syslog.pm 2013-01-22 20:19:57.000000000 -0800 +@@ -148,17 +148,21 @@ + } + $msg = $timestamp . ' ' . $msg if $timestamp ne ''; + +- # important: do not call syslog() from the SIGCHLD handler +- # child_handler(). otherwise we can get into a loop if syslog() +- # forks a process -- as it does in syslog-ng apparently! (bug 3625) +- $Mail::SpamAssassin::Logger::LOG_SA{INHIBIT_LOGGING_IN_SIGCHLD_HANDLER} = 1; ++# no longer needed since a patch to bug 6745: ++# # important: do not call syslog() from the SIGCHLD handler ++# # child_handler(). otherwise we can get into a loop if syslog() ++# # forks a process -- as it does in syslog-ng apparently! (bug 3625) ++# $Mail::SpamAssassin::Logger::LOG_SA{INHIBIT_LOGGING_IN_SIGCHLD_HANDLER} = 1; ++ + my $eval_stat; + eval { + syslog($level, "%s", $msg); 1; + } or do { + $eval_stat = $@ ne '' ? $@ : "errno=$!"; chomp $eval_stat; + }; +- $Mail::SpamAssassin::Logger::LOG_SA{INHIBIT_LOGGING_IN_SIGCHLD_HANDLER} = 0; ++ ++# no longer needed since a patch to bug 6745: ++# $Mail::SpamAssassin::Logger::LOG_SA{INHIBIT_LOGGING_IN_SIGCHLD_HANDLER} = 0; + + if (defined $eval_stat) { + if ($self->check_syslog_sigpipe($msg)) { +Index: spamassassin-3.3.2/spamd/spamd.raw +=================================================================== +--- spamassassin-3.3.2.orig/spamd/spamd.raw 2013-01-22 20:19:12.000000000 -0800 ++++ spamassassin-3.3.2/spamd/spamd.raw 2013-01-22 20:19:57.000000000 -0800 +@@ -588,6 +588,7 @@ + my $timeout_child; # processing timeout (headers->finish), 0=no timeout + my $clients_per_child; # number of clients each child should process + my %children; # current children ++my @children_exited; + + if ( defined $opt{'max-children'} ) { + $childlimit = $opt{'max-children'}; +@@ -1031,6 +1032,8 @@ + # child_handler() if !$scaling || am_running_on_windows(); + child_handler(); # it doesn't hurt to call child_handler unconditionally + ++ child_cleaner(); ++ + do_sighup_restart() if defined $got_sighup; + + for (my $i = keys %children; $i < $childlimit; $i++) { +@@ -2517,7 +2520,8 @@ + my ($sig) = @_; + + # do NOT call syslog here unless the child's pid is in our list of known +- # children. This is due to syslog-ng brokenness -- bugs 3625, 4237. ++ # children. This is due to syslog-ng brokenness -- bugs 3625, 4237; ++ # see also bug 6745. + + # clean up any children which have exited + for (;;) { +@@ -2528,12 +2532,23 @@ + # + my $pid = waitpid(-1, WNOHANG); + last if !$pid || $pid == -1; +- my $child_stat = $?; ++ push(@children_exited, [$pid, $?, $sig, time]); ++ } + +- if (!defined $children{$pid}) { +- # ignore this child; we didn't realise we'd forked it. bug 4237 +- next; +- } ++ $SIG{CHLD} = \&child_handler; # reset as necessary, should be at end ++} ++ ++# takes care of dead children, as noted by a child_handler() ++# called in a main program flow (not from a signal handler) ++# ++sub child_cleaner { ++ while (@children_exited) { ++ my $tuple = shift(@children_exited); ++ next if !$tuple; # just in case ++ my($pid, $child_stat, $sig, $timestamp) = @$tuple; ++ ++ # ignore this child if we didn't realise we'd forked it. bug 4237 ++ next if !defined $children{$pid}; + + # remove them from our child listing + delete $children{$pid}; +@@ -2544,15 +2559,10 @@ + my $sock = $backchannel->get_socket_for_child($pid); + if ($sock) { $sock->close(); } + } +- +- unless ($Mail::SpamAssassin::Logger::LOG_SA{INHIBIT_LOGGING_IN_SIGCHLD_HANDLER}) { +- info("spamd: handled cleanup of child pid [%s]%s: %s", +- $pid, (defined $sig ? " due to SIG$sig" : ""), +- exit_status_str($child_stat,0)); +- } ++ info("spamd: handled cleanup of child pid [%s]%s: %s", ++ $pid, (defined $sig ? " due to SIG$sig" : ""), ++ exit_status_str($child_stat,0)); + } +- +- $SIG{CHLD} = \&child_handler; # reset as necessary, should be at end + } + + sub restart_handler { diff -Nru spamassassin-3.3.2/debian/patches/series spamassassin-3.3.2/debian/patches/series --- spamassassin-3.3.2/debian/patches/series 2012-08-13 21:35:04.000000000 -0700 +++ spamassassin-3.3.2/debian/patches/series 2013-01-22 20:28:45.000000000 -0800 @@ -6,3 +6,4 @@ 60_bug_684709 85_disable_SSLv2 90_pod_cleanup +95_bug694504-spamdforkscaling-crash
--- End Message ---
--- Begin Message ---
- To: Noah Meyerhans <noahm@debian.org>, 699318-done@bugs.debian.org
- Subject: Re: Bug#699318: unblock: spamassassin/3.3.2-5
- From: Julien Cristau <jcristau@debian.org>
- Date: Wed, 30 Jan 2013 21:29:01 +0100
- Message-id: <20130130202901.GK8837@radis.cristau.org>
- In-reply-to: <20130130070631.15808.71147.reportbug@ping.chartbeat.net>
- References: <20130130070631.15808.71147.reportbug@ping.chartbeat.net>
On Tue, Jan 29, 2013 at 23:06:31 -0800, Noah Meyerhans wrote: > Package: release.debian.org > Severity: normal > User: release.debian.org@packages.debian.org > Usertags: unblock > > Please unblock package spamassassin 3.3.2-5. It contains a single > change: The fix for the crash described in > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694504 > > The relevant changelog entry follows, and the full debdiff is attached. > Unblocked. Cheers, JulienAttachment: signature.asc
Description: Digital signature
--- End Message ---