Bug 2764 - spamd generating zombie processes on FreeBSD
Summary: spamd generating zombie processes on FreeBSD
Status: RESOLVED FIXED
Alias: None
Product: Spamassassin
Classification: Unclassified
Component: spamc/spamd (show other bugs)
Version: 2.60
Hardware: PC FreeBSD
: P1 major
Target Milestone: 3.0.0
Assignee: SpamAssassin Developer Mailing List
URL:
Whiteboard:
Keywords: spamd
Depends on:
Blocks: 3208
  Show dependency tree
 
Reported: 2003-11-17 21:19 UTC by Jeremy Chadwick
Modified: 2004-04-29 06:24 UTC (History)
1 user (show)



Attachment Type Modified Status Actions Submitter/CLA Status

Note You need to log in before you can comment on or make changes to this bug.
Description Jeremy Chadwick 2003-11-17 21:19:44 UTC
Using the stock ports/mail/p5-Mail-SpamAssassin package, using spamd/spamc, and 
procmail (per account, NOT system-wide).  FreeBSD 4.9-STABLE, perl 5.8.1 (yes 
really), Net::DNS 0.41 (doubt this is the problem but not sure; see below), 
Razor 2.36.

spamd is started and there are no zombies.  The instant a new piece of mail 
comes in, a single zombie is created (running as that username which the mail 
came in for) and stays there (probably until init kills it, then the process 
repeats).

This is not a procmail problem, and our procmail rules for each account are 
definitely set up correctly (I'm quite well-versed in procmail :-) ).  The 
process list in question shows spamd as the PPID of the zombie, so...

Here's truss output on spamd once a new piece of Email comes in (via spamc):

(null)()                                         = 1 (0x1)
accept(0x5,{ AF_INET 127.0.0.1:3482 },0xbfbff4dc) = 6 (0x6)
fcntl(0x6,0x3,0x0)                               = 2 (0x2)
fcntl(0x6,0x3,0x0)                               = 2 (0x2)
fcntl(0x6,0x2,0x1)                               = 0 (0x0)
gettimeofday(0xbfbff874,0x0)                     = 0 (0x0)
getpeername(0x6,{ AF_INET 127.0.0.1:3482 },0xbfbff8dc) = 0 (0x0)
open("/etc/hosts",0x0,0666)                      = 7 (0x7)
fstat(7,0xbfbff710)                              = 0 (0x0)
read(0x7,0x8146000,0x2000)                       = 2050 (0x802)
close(7)                                         = 0 (0x0)
sigprocmask(0x1,0xbfbff870,0xbfbff860)           = 0 (0x0)
sigaction(SIGPIPE,0xbfbff808,0xbfbff7f0)         = 0 (0x0)
sigprocmask(0x3,0x93ecbe0,0x0)                   = 0 (0x0)
sigprocmask(0x1,0xbfbff6e0,0xbfbff6d0)           = 0 (0x0)
sigaction(SIGPIPE,0xbfbff678,0xbfbff660)         = 0 (0x0)
sigprocmask(0x3,0x93ecbe0,0x0)                   = 0 (0x0)
write(2,0x813a000,67)                            = 67 (0x43)
select(0x8,0x936c0a8,0x0,0x936c0a8,0xbfbff680)   = 0 (0x0)
write(4,0x9387c10,79)                            = 79 (0x4f)
sigprocmask(0x1,0xbfbff6e0,0xbfbff6d0)           = 0 (0x0)
sigaction(SIGPIPE,0xbfbff678,0xbfbff660)         = 0 (0x0)
sigprocmask(0x3,0x93ecbe0,0x0)                   = 0 (0x0)
select(0x8,0x936c06c,0x0,0x936c06c,0xbfbff8c0)   = 0 (0x0)
write(4,0x9387c10,71)                            = 71 (0x47)
sigprocmask(0x1,0xbfbff870,0xbfbff860)           = 0 (0x0)
sigaction(SIGPIPE,0xbfbff808,0xbfbff7f0)         = 0 (0x0)
sigprocmask(0x3,0x93ecbe0,0x0)                   = 0 (0x0)
fork()                                           = 64855 (0xfd57)
close(-1)                                        ERR#9 'Bad file descriptor'
close(6)                                         = 0 (0x0)
wait4(0xffffffff,0xbfbff8dc,0x1,0x0)             = 0 (0x0)
SIGNAL 20

What bothers me about this is the bad file descriptor result.

I have tried all of the following options in local.cf (all combined as well).  
None make a difference.  But just to clarify: the only "additional" packages 
that are being used under our configuration are Razor.

use_dcc 0
use_pyzor 0
use_razor2 0
use_bayes 0
skip_rbl_checks 1
dns_available no

I have also tried removing -a from spamd (I believe this is synonymous with 
use_bayes though); no difference.

Finally, here's some spamd output in our syslog, after I've enabled --debug.  
It should show the checks which are getting performed and may or may not help 
(I believe this is after I removed the above disable flags in local.cf, since 
they didn't make a difference):

Nov 17 21:02:25 pentarou spamd[64825]: debug: daemonized. 
Nov 17 21:02:25 pentarou spamd[64825]: debug: Preloading modules with 
HOME=/tmp/spamd-64825-init 
Nov 17 21:02:25 pentarou spamd[64825]: debug: ignore: test message to 
precompile patterns and load modules 
Nov 17 21:02:25 pentarou spamd[64825]: debug: 
using "/usr/local/share/spamassassin" for default rules dir 
Nov 17 21:02:25 pentarou spamd[64825]: debug: 
using "/usr/local/etc/mail/spamassassin" for site rules dir 
Nov 17 21:02:26 pentarou spamd[64825]: debug: using "/tmp/spamd-64825-
init/.spamassassin" for user state dir 
Nov 17 21:02:26 pentarou spamd[64825]: debug: bayes: no dbs present, cannot 
scan: /tmp/spamd-64825-init/.spamassassin/bayes_toks 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Score set 1 chosen. 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Initialising learner 
Nov 17 21:02:26 pentarou spamd[64825]: debug: bayes: Not available for 
scanning, only 0 spam(s) in Bayes DB < 200 
Nov 17 21:02:26 pentarou spamd[64825]: debug: bayes: 64825 untie-ing 
Nov 17 21:02:26 pentarou spamd[64825]: debug: bayes: 64825 untie-ing db_toks 
Nov 17 21:02:26 pentarou spamd[64825]: debug: is Net::DNS::Resolver available? 
yes 
Nov 17 21:02:26 pentarou spamd[64825]: debug: trying (3) yahoo.de... 
Nov 17 21:02:26 pentarou spamd[64825]: debug: looking up MX for 'yahoo.de' 
Nov 17 21:02:26 pentarou spamd[64825]: debug: MX for 'yahoo.de' exists? 1 
Nov 17 21:02:26 pentarou spamd[64825]: debug: MX lookup of yahoo.de succeeded 
=> Dns available (set dns_available to hardcode) 
Nov 17 21:02:26 pentarou spamd[64825]: debug: is DNS available? 1 
Nov 17 21:02:26 pentarou spamd[64825]: debug: all '*From' addrs: 
ignore@compiling.spamassassin.taint.org 
Nov 17 21:02:26 pentarou spamd[64825]: debug: running header regexp tests; 
score so far=0 
Nov 17 21:02:26 pentarou spamd[64825]: debug: running body-text per-line regexp 
tests; score so far=1.27 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Razor2 is available 
Nov 17 21:02:26 pentarou spamd[64825]: debug: entering helper-app run mode 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Using results from Razor v2.36 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Found Razor2 part: part=0 
engine=4 ct=0 cf=0 
Nov 17 21:02:26 pentarou spamd[64825]: debug: leaving helper-app run mode 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Razor2 results: spam? 0  highest 
cf score: 0 
Nov 17 21:02:26 pentarou spamd[64825]: debug: running raw-body-text per-line 
regexp tests; score so far=1.27 
Nov 17 21:02:26 pentarou spamd[64825]: debug: running uri tests; score so 
far=1.27 
Nov 17 21:02:26 pentarou spamd[64825]: debug: uri tests: Done uriRE 
Nov 17 21:02:26 pentarou spamd[64825]: debug: running full-text regexp tests; 
score so far=1.27 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Razor2 is available 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Current PATH 
is: /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Pyzor is not available: pyzor not 
found 
Nov 17 21:02:26 pentarou spamd[64825]: debug: DCCifd is not available: no r/w 
dccifd socket found. 
Nov 17 21:02:26 pentarou spamd[64825]: debug: DCC is not available: no 
executable dccproc found. 
Nov 17 21:02:26 pentarou spamd[64825]: debug: all '*To' addrs:  
Nov 17 21:02:26 pentarou spamd[64825]: debug: RBL: success for 1 of 1 queries 
Nov 17 21:02:26 pentarou spamd[64825]: debug: running meta tests; score so 
far=1.27 
Nov 17 21:02:26 pentarou spamd[64825]: debug: using "/tmp/spamd-64825-
init/.spamassassin" for user state dir 
Nov 17 21:02:26 pentarou spamd[64825]: debug: lock: 64825 created /tmp/spamd-
64825-init/.spamassassin/auto-whitelist.lock.pentarou.parodius.com.64825 
Nov 17 21:02:26 pentarou spamd[64825]: debug: lock: 64825 trying to get lock 
on /tmp/spamd-64825-init/.spamassassin/auto-whitelist with 0 retries 
Nov 17 21:02:26 pentarou spamd[64825]: debug: lock: 64825 link to /tmp/spamd-
64825-init/.spamassassin/auto-whitelist.lock: link ok 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Tie-ing to DB file R/W 
in /tmp/spamd-64825-init/.spamassassin/auto-whitelist 
Nov 17 21:02:26 pentarou spamd[64825]: debug: auto-whitelist (db-based): 
ignore@compiling.spamassassin.taint.org|ip=none scores 0/0 
Nov 17 21:02:26 pentarou spamd[64825]: debug: AWL active, pre-score: 1.27, 
mean: undef, originating-ip: undef 
Nov 17 21:02:26 pentarou spamd[64825]: debug: Post AWL score: 1.27 
Nov 17 21:02:26 pentarou spamd[64825]: debug: DB addr list: untie-ing and 
unlocking. 
Nov 17 21:02:26 pentarou spamd[64825]: debug: DB addr list: file locked, 
breaking lock. 
Nov 17 21:02:26 pentarou spamd[64825]: debug: unlock: 64825 unlink /tmp/spamd-
64825-init/.spamassassin/auto-whitelist.lock 
Nov 17 21:02:26 pentarou spamd[64825]: debug: is spam? score=1.27 required=5 
tests=DATE_MISSING,NO_REAL_NAME 
Nov 17 21:02:26 pentarou spamd[64825]: server started on port 783/tcp (running 
version 2.60) 
Nov 17 21:02:26 pentarou spamd[64825]: server pid: 64825 
Nov 17 21:02:26 pentarou spamd[64825]: logmsg: server started on port 783/tcp 
(running version 2.60) 
Nov 17 21:02:26 pentarou spamd[64825]: server started on port 783/tcp (running 
version 2.60) 
Nov 17 21:02:44 pentarou spamd[64825]: logmsg: connection from localhost 
[127.0.0.1] at port 3482 
Nov 17 21:02:44 pentarou spamd[64825]: connection from localhost [127.0.0.1] at 
port 3482 
Nov 17 21:02:44 pentarou spamd[64855]: logmsg: info: setuid to jdc succeeded 
Nov 17 21:02:44 pentarou spamd[64855]: info: setuid to jdc succeeded 
Nov 17 21:02:44 pentarou spamd[64855]: debug: user has changed 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 untie-ing 
Nov 17 21:02:44 pentarou spamd[64855]: debug: using "/home/jdc/.spamassassin" 
for user state dir 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 tie-ing to DB file 
R/O /home/jdc/.spamassassin/bayes_toks 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 tie-ing to DB file 
R/O /home/jdc/.spamassassin/bayes_seen 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: found bayes db version 2 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: Not available for 
scanning, only 177 ham(s) in Bayes DB < 200 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 untie-ing 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 untie-ing db_toks 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 untie-ing db_seen 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Score set 1 chosen. 
Nov 17 21:02:44 pentarou spamd[64855]: logmsg: processing message <e-o12u20a3
$0unc@5ml6.zkn0> for jdc:500. 
Nov 17 21:02:44 pentarou spamd[64855]: processing message <e-o12u20a3
$0unc@5ml6.zkn0> for jdc:500. 
Nov 17 21:02:44 pentarou spamd[64855]: debug: using "/home/jdc/.spamassassin" 
for user state dir 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 tie-ing to DB file 
R/O /home/jdc/.spamassassin/bayes_toks 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 tie-ing to DB file 
R/O /home/jdc/.spamassassin/bayes_seen 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: found bayes db version 2 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: Not available for 
scanning, only 177 ham(s) in Bayes DB < 200 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 untie-ing 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 untie-ing db_toks 
Nov 17 21:02:44 pentarou spamd[64855]: debug: bayes: 64855 untie-ing db_seen 
Nov 17 21:02:44 pentarou spamd[64855]: debug: is Net::DNS::Resolver available? 
yes 
Nov 17 21:02:44 pentarou spamd[64855]: debug: all '*From' addrs: 
jdc@parodius.com 
Nov 17 21:02:44 pentarou spamd[64855]: debug: running header regexp tests; 
score so far=0 
Nov 17 21:02:44 pentarou spamd[64855]: debug: running body-text per-line regexp 
tests; score so far=4.4 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Razor2 is available 
Nov 17 21:02:44 pentarou spamd[64855]: debug: entering helper-app run mode 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Using results from Razor v2.36 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Found Razor2 part: part=0 
engine=4 ct=0 cf=0 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Found Razor2 part: part=1 
engine=4 ct=0 cf=0 
Nov 17 21:02:44 pentarou spamd[64855]: debug: leaving helper-app run mode 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Razor2 results: spam? 0  highest 
cf score: 0 
Nov 17 21:02:44 pentarou spamd[64855]: debug: running raw-body-text per-line 
regexp tests; score so far=4.401 
Nov 17 21:02:44 pentarou spamd[64855]: debug: running uri tests; score so 
far=4.401 
Nov 17 21:02:44 pentarou spamd[64855]: debug: uri tests: Done uriRE 
Nov 17 21:02:44 pentarou spamd[64855]: debug: running full-text regexp tests; 
score so far=5.185 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Razor2 is available 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Pyzor is not available: pyzor not 
found 
Nov 17 21:02:44 pentarou spamd[64855]: debug: DCCifd is not available: no r/w 
dccifd socket found. 
Nov 17 21:02:44 pentarou spamd[64855]: debug: DCC is not available: no 
executable dccproc found. 
Nov 17 21:02:44 pentarou spamd[64855]: debug: all '*To' addrs: jdc@parodius.com 
Nov 17 21:02:44 pentarou spamd[64855]: debug: DNS MX records found: 1 
Nov 17 21:02:44 pentarou spamd[64855]: debug: RBL: success for 1 of 1 queries 
Nov 17 21:02:44 pentarou spamd[64855]: debug: running meta tests; score so 
far=5.185 
Nov 17 21:02:44 pentarou spamd[64855]: debug: auto-learn? ham=0.1, spam=12, 
body-hits=0.785, head-hits=4.4 
Nov 17 21:02:44 pentarou spamd[64855]: debug: auto-learn: currently using 
scoreset 1.  no need to recompute. 
Nov 17 21:02:44 pentarou spamd[64855]: debug: auto-learn? no: inside auto-learn 
thresholds 
Nov 17 21:02:44 pentarou spamd[64855]: debug: using "/home/jdc/.spamassassin" 
for user state dir 
Nov 17 21:02:44 pentarou spamd[64855]: debug: lock: 64855 
created /home/jdc/.spamassassin/auto-whitelist.lock.pentarou.parodius.com.64855 
Nov 17 21:02:44 pentarou spamd[64855]: debug: lock: 64855 trying to get lock 
on /home/jdc/.spamassassin/auto-whitelist with 0 retries 
Nov 17 21:02:44 pentarou spamd[64855]: debug: lock: 64855 link 
to /home/jdc/.spamassassin/auto-whitelist.lock: link ok 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Tie-ing to DB file R/W 
in /home/jdc/.spamassassin/auto-whitelist 
Nov 17 21:02:44 pentarou spamd[64855]: debug: auto-whitelist (db-based): 
1fbrfrk@concentric.com|ip=none scores 4/20.74 
Nov 17 21:02:44 pentarou spamd[64855]: debug: AWL active, pre-score: 5.185, 
mean: 5.185, originating-ip: undef 
Nov 17 21:02:44 pentarou spamd[64855]: debug: add_score: New count: 5, new 
totscore: 25.925 
Nov 17 21:02:44 pentarou spamd[64855]: debug: Post AWL score: 5.185 
Nov 17 21:02:44 pentarou spamd[64855]: debug: DB addr list: untie-ing and 
unlocking. 
Nov 17 21:02:44 pentarou spamd[64855]: debug: DB addr list: file locked, 
breaking lock. 
Nov 17 21:02:44 pentarou spamd[64855]: debug: unlock: 64855 
unlink /home/jdc/.spamassassin/auto-whitelist.lock 
Nov 17 21:02:44 pentarou spamd[64855]: debug: is spam? score=5.185 required=5 
tests=AWL,BIZ_TLD,DATE_SPAMWARE_Y2K,HTML_MESSAGE 
Nov 17 21:02:44 pentarou spamd[64855]: logmsg: identified spam (5.2/5.0) for 
jdc:500 in 0.5 seconds, 7685 bytes. 
Nov 17 21:02:44 pentarou spamd[64855]: identified spam (5.2/5.0) for jdc:500 in 
0.5 seconds, 7685 bytes.
Comment 1 Jeremy Chadwick 2003-11-17 21:27:26 UTC
Forgot to include the proof of the actual zombie.  Here you go (I just 
restarted spamd, so you'll see the zombie first; note PPID of 65364 (spamc) is 
64825 (spamd) for user dnsadmin (one of our users which uses SA)).

$ ps -ajx | grep perl
root     64825     1 64825 c7a35440    0 Is    ??    
0:01.15 /usr/local/bin/perl -T -w /usr/local/bin/spamd -a -c -d --pidfile=/var/r
dnsadmin 65364 64825 64825 c7a35440    0 Z     ??    0:00.00  (perl)
jdc      65398 64687 65397 c7a3aec0    2 RV+   p0    0:00.00 grep perl (tcsh)
$ su2
pentarou# /usr/local/etc/rc.d/spamd.sh stop
 spamdpentarou# /usr/local/etc/rc.d/spamd.sh start
debug: Score set 0 chosen.
debug: Running in taint mode, removing unsafe env vars, and resetting PATH
debug: PATH included '/sbin', keeping.
debug: PATH included '/bin', keeping.
debug: PATH included '/usr/sbin', keeping.
debug: PATH included '/usr/bin', keeping.
debug: PATH included '/usr/games', keeping.
debug: PATH included '/usr/local/sbin', keeping.
debug: PATH included '/usr/local/bin', keeping.
debug: PATH included '/usr/X11R6/bin', which doesn't exist, dropping.
debug: PATH included '/root/bin', which doesn't exist, dropping.
debug: Final PATH set 
to: /sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin
 spamdpentarou# exit
$ ps -ajx | grep perl
root   65511     1 65511 c7546940    0 Is    ??    0:01.07 /usr/local/bin/perl -
T -w /usr/local/bin/spamd -a -c -d --pidfile=/var/run/spamd.pid --
syslog=local6 --debug
jdc    65513 64687 65512 c7a3aec0    2 R+    p0    0:00.00 grep perl
Comment 2 Justin Mason 2003-11-19 12:24:37 UTC
It's just a limitation of the portability of perl's wait() support on various
platforms; on BSDish ones, we get 1 zombie, max. that's reaped next time a
client connects.

If there's *more* than 1 zombie at any time, that's a different matter.  But 1
zombie has virtually 0 effect (apart from minor unattractiveness in the ps
listing ;).

As such, closing WONTFIX.
Comment 3 Jeremy Chadwick 2003-11-19 14:42:08 UTC
One zombie is acceptable?  Wow.  The attitude of software developers sure has 
changed in the past 20 years.  I believe a few historic cases of spamd spawning 
zombies resulted in people finding that they were gradually increasing over a 
period of multiple months.  I've only been using this software for a couple of 
weeks.

My point is that the code already does checks against $^O and executes other 
cute kludge-fixes to figure out how to properly handle such situations on 
Linux, but yet somehow BSD is out of the question?  I find this hard to believe.

The perl.com FAQ covers 2 different methods available for fixing zombies using 
stock perl.  There's also the possibility of using Net::Daemon as a workaround.

Please reconsider looking into other solutions for solving this problem.  I've 
never seen this zombie problem appear in other pieces of perl-based software on 
BSD (mrtg comes to mind), so it seems awfully specific to this suite.  So 
please do reconsider.
Comment 4 Jeremy Chadwick 2003-11-19 15:04:13 UTC
One additional idea: would it be too much to ask to get you folks to write a 
version of your signal handlers (re: SIGCHLD) that works with BSD so that we 
can place the patch in our ports tree?  That way the patch would be specific to 
BSD systems only, and wouldn't be part of the stock SA/spamc/spamd base (I 
believe this would make both the SA developers happy while simultaneously 
making the BSD users happy).

If not, I'll submit this idea to the FreeBSD ports maintainers and see if they 
can come up with something.
Comment 5 Justin Mason 2003-11-19 15:25:05 UTC
'I believe a few historic cases of spamd spawning zombies resulted in people
finding that they were gradually increasing over a period of multiple months.'

That's a different problem -- if the number of zombies does increase, then yes,
it's more serious.  If it's either 0 or 1 zombie listed at any stage, that's
really not a biggie.  Seriously.

However, I'd be happy to accept a patch that uses a $^O check (and works, of
course). Note that installing a SIGCHLD handler may cause coredumps though due
to perl bugs, so that should be avoided, cf:

  http://bugzilla.spamassassin.org/show_bug.cgi?id=1087

(SIGCHLD can only be set to SIG_IGN or SIG_DFL on Linux or Solaris with perl
5.8.x at least.  I'm not sure about BSD platforms though, but given the oddness
and rarity of this race condition, I'd strongly suggest avoiding it.)
Comment 6 Jeremy Chadwick 2004-01-26 04:24:01 UTC
Okay, now we're seeing 2 zombies.

$ ps -ajx | grep perl
root      163     1   163 c72e6700    0 Is    ??    
0:21.25 /usr/local/bin/spamd -a -c -d -r /var/run/spamd.pid (perl)
paizuri 11318   163   163 c72e6700    0 Z     ??    0:00.00  (perl)
whited  11323   163   163 c72e6700    0 Z     ??    0:00.00  (perl)
jdc     11377 51092 11376 c7296480    2 R+    p2    0:00.00 grep perl

Can we please see about getting this fixed?
Comment 7 Malte S. Stretz 2004-01-26 06:58:32 UTC
I'll see what I can do about this in 2.70, but don't expect anything too fast 
(ie. within the next few weeks) as I'm quite busy now. 
Comment 8 Jeremy Chadwick 2004-01-26 13:51:00 UTC
Absolutely no problem -- take your time.  I'm willing to try patches as well, 
if necessary.
Comment 9 Justin Mason 2004-04-28 16:32:38 UTC
Could you test with current SVN trunk?  I think this is fixed. (marking FIXED
until further reports ;)
Comment 10 Jeremy Chadwick 2004-04-28 17:10:05 UTC
No sweat -- you have an applicable URL for a tarball of the latest SVN trunk?
Comment 11 Justin Mason 2004-04-28 17:56:45 UTC
http://www.spamassassin.org/devel/Mail-SpamAssassin-3.000000-cvs.tar.gz will be
it, once it updates at 1:00 AM GMT (ish) tonight...
Comment 12 Jeremy Chadwick 2004-04-29 01:52:38 UTC
After many hours of moving the FreeBSD mail/p5-Mail-SpamAssassin port over to 
use the CVS build, things look good:

Apr 29 01:43:58 pentarou spamd[29863]: spamd starting 
Apr 29 01:43:59 pentarou spamd[29865]: server started on port 783/tcp (running 
version 3.0.0-r10392) 
Apr 29 01:43:59 pentarou spamd[29865]: server successfully spawned child 
process, pid 29866 

After delivery of a good 50-60 Emails:

# ps -auxwww | grep spam | grep -v spam
root    29865  0.0  4.1 22636 21568  ??  Is    1:43AM   
0:01.36 /usr/local/bin/spamd -c -d -m 1 -s local6 -r /var/run/spamd.pid (perl)
root    29866  0.0  4.5 24740 23668  ??  I     1:43AM   
0:01.93 /usr/local/bin/spamd -c -d -m 1 -s local6 -r /var/run/spamd.pid (perl)

I'll report back in about 48 hours, to see if there's any issues.

Also, one final thing (totally unrelated): could someone add some environment 
hooks for enabling/disabling the DBI/SQL/Bayes tests (identical to the network 
tests) in Makefile.PL?  Or should I submit this request in a new bug/feature 
request...
Comment 13 Jeremy Chadwick 2004-04-29 14:24:26 UTC
After 12 hours:

root    29865  0.0  4.1 22636 21552  ??  Is    1:43AM   
0:01.36 /usr/local/bin/spamd -c -d -m 1 -s local6 -r /var/run/spamd.pid (per
root    29866  0.0 11.0 60752 57288  ??  I     1:43AM   
6:36.09 /usr/local/bin/spamd -c -d -m 1 -s local6 -r /var/run/spamd.pid (per

Memory leak?
Comment 14 Klaus Heinz 2004-05-01 07:24:08 UTC
Subject: Re:  spamd generating zombie processes on FreeBSD

bugzilla-daemon@bugzilla.spamassassin.org wrote:

> Also, one final thing (totally unrelated): could someone add some environment 
> hooks for enabling/disabling the DBI/SQL/Bayes tests (identical to the network


Seconded (for NetBSD packaging), probably for the same reasons :-)

I've been lagging behind building SA 3.0 releases on NetBSD but will
hopefully resume this soon.


ciao
     Klaus