Running without the daemon option makes it clear:

$ /usr/bin/spamd -x --max-conn-per-child=20 --socketpath=/dev/spamd
--socketgroup=mail -m3 --min-spare=3 -u mail

...
[4463] info: spamd: server started on UNIX domain socket /dev/spamd (running
version 3.2.2)
[4463] info: spamd: server pid: 4463
spamd: setuid to uid 8 failed
[4463] info: spamd: server successfully spawned child process, pid 4468
[4463] info: spamd: server successfully spawned child process, pid 4469
spamd: setuid to uid 8 failed
[4463] info: spamd: server successfully spawned child process, pid 4470
[4463] info: prefork: child states: SSS
[4463] info: prefork: server reached --max-children setting, consider
raising it
[4463] info: spamd: handled cleanup of child pid 4468 due to SIGCHLD
spamd: setuid to uid 8 failed
[4463] info: spamd: server successfully spawned child process, pid 4471
spamd: setuid to uid 8 failed
[4463] info: prefork: child states: SSS
[4463] info: prefork: server reached --max-children setting, consider
raising it
[4463] info: spamd: handled cleanup of child pid 4469 due to SIGCHLD
spamd: setuid to uid 8 failed

        This is the die() message from when the setgid/setuid functions are
called:

...
      # bug 5518: assignments to $) and $( don't always work on all
platforms
      # bug 3900: assignments to $> and $< problems with BSD perl bug
      # use the POSIX functions to hide the platform specific workarounds
      POSIX::setgid($ugid);  # set effective and real gid
      POSIX::setuid($uuid);  # set effective and real UID

      # keep the sanity check to catch problems like bug 3900 just in case
      if ( $> != $uuid and $> != ( $uuid - 2**32 ) ) {
        die "spamd: setuid to uid $uuid failed\n";
      }
...

 Chris

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, July 25, 2007 10:10 AM
To: Chris Blaise
Cc: users@spamassassin.apache.org
Subject: Re: ANNOUNCE: Apache SpamAssassin 3.2.2 available 

try using "strace -fp {PID}" to see what is causing those
deaths...

Chris Blaise writes:
> 
>       Can you verify that it's not in the "child create/due" loop?
> Tailing my log, I see the following:
> 
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: spamd: server started on UNIX
> domai
> n socket /dev/spamd (running version 3.2.2)
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: spamd: server pid: 4553
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: spamd: server successfully
> spawned
> child process, pid 4556
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: spamd: server successfully
> spawned
> child process, pid 4557
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: spamd: server successfully
> spawned
> child process, pid 4558
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: prefork: child states: SSS
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: prefork: server reached
> --max-child
> ren setting, consider raising it
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: prefork: child states: SSS
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: prefork: server reached
> --max-child
> ren setting, consider raising it
> 2007 Jul 25 08:41:01 ThreatWall spamd[4553]: spamd: handled cleanup of
child
> pid
>  4556 due to SIGCHLD
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: server successfully
> spawned
> :
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: handled cleanup of
child
> pid
>  4558 due to SIGCHLD
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: prefork: child states: S
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: server successfully
> spawned
> child process, pid 4560
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: server successfully
> spawned
> child process, pid 4561
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: handled cleanup of
child
> pid
>  4559 due to SIGCHLD
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: handled cleanup of
child
> pid
>  4560 due to SIGCHLD
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: prefork: child states: S
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: server successfully
> spawned
> child process, pid 4562
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: server successfully
> spawned
> child process, pid 4563
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: prefork: child states: SSS
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: prefork: server reached
> --max-child
> ren setting, consider raising it
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: handled cleanup of
child
> pid
>  4561 due to SIGCHLD
> 2007 Jul 25 08:41:02 ThreatWall spamd[4553]: spamd: handled cleanup of
child
> pid
>  4562 due to SIGCHLD
> ....
> 
>       Until I kill the parent spamd process.  I run it with:
> 
> /usr/bin/spamd -d -x --max-conn-per-child=20 --socketpath=/dev/spamd
> --socketgroup=mail -m3 --min-spare=3 -u mail
> 
>  Chris
> 
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, July 25, 2007 9:06 AM
> To: Chris Blaise
> Cc: users@spamassassin.apache.org
> Subject: Re: ANNOUNCE: Apache SpamAssassin 3.2.2 available 
> 
> 
> Chris Blaise writes:
> >     When starting up on a Perl 5.6.1 system under x86 Linux, spamd goes
> > into a child spawn/die loop because of the fix for bug 5518 which
replaces
> > the previous set uid/gid routines fails and causes the newly spawned
child
> > to immediately die.
> > 
> >     Is Perl 5.6.1 no longer the lowest support version?
> 
> works fine for me with perl 5.6.1; make test passes:
> 
> t/spamd.....................ok
> t/spamd_allow_user_rules....ok
> t/spamd_hup.................ok
> t/spamd_kill_restart........ok
> [.etc.]
> 
> and 'sudo make test TEST_FILES=t/root_spamd*' similarly passes:
> 
> t/root_spamd....................ok
> t/root_spamd_tell...............ok
> t/root_spamd_tell_paranoid......ok
> t/root_spamd_tell_x.............ok
> t/root_spamd_tell_x_paranoid....ok
> t/root_spamd_x..................ok
> t/root_spamd_x_paranoid.........ok
> All tests successful.
> 
> --j.

Reply via email to