Bug Tracker item #2916563, was opened at 2009-12-17 23:55
Message generated for change (Settings changed) made by sbajic
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1126467&aid=2916563&group_id=250683

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: daemon
Group: None
>Status: Closed
>Resolution: Wont Fix
Priority: 5
Private: No
Submitted By: Aria Stewart (aredridel)
Assigned to: Stevan Bajic (sbajic)
Summary: "Exit status 251" with dspamc

Initial Comment:
I'm trying to track down this bug but haven't found any place in the source 
that dspam would exit with this status.

At 4am, each day, messages get rejected with <address here>: Command died with 
status 251: "/usr/bin/dspamc"

(this is using postfix)

Nothing in logs that I can find, nothing in the source, and suspiciously timed.

Any idea what could cause dspamc to exit with status like that?

----------------------------------------------------------------------

>Comment By: Stevan Bajic (sbajic)
Date: 2009-12-23 01:38

Message:
> Any reason for DSPAM not to just use
> sysexits.h-defined exit values?
>
Well... I can't give you an definitive answer on that other than that the
original author of DSPAM has made it that way.

> Are there MTAs that expect anything
> different?
>
I can't talk for all the MTA's out there but I would say that the big part
of them would work better if sysexits.h exit codes would be used by DSPAM.

I am for now going to close this bug report here. The request for using
sysexits.h return values is something that has brought up already several
times and to implement that we need time to code and test such a switch.
Unfortunately everyone is requesting but not many are contributing time nor
code to DSPAM. And I am loaded with a gazillion of things. I can't
constantly work on DSPAM and fulfill all the requests out there.

If you feel you need to have sysexits.h exit codes then please fill out a
feature request.


-- 
Kind Regards from Switzerland,

Stevan Bajić

----------------------------------------------------------------------

Comment By: Aria Stewart (aredridel)
Date: 2009-12-23 01:25

Message:
Ah! That starts making sense. (Any reason for DSPAM not to just use
sysexits.h-defined exit values? Are there MTAs that expect anything
different?)

I'll look at LMTP, too.

----------------------------------------------------------------------

Comment By: Stevan Bajic (sbajic)
Date: 2009-12-23 00:47

Message:
> dspam unix - n n - 15 pipe
> flags=Ru user=dspam argv=/usr/bin/dspamc --deliver=innocent
> --user $recipient -i -f $sender -- $recipient
>
> and then triggered with a FILTER dspam:unix action
>
I am not a big friend of FILTER in Postfix and I got burned a bunch of
times in the past with piping stuff to DSPAM.

Do you have any reason not to use LMTP/SMTP with DSPAM? You already use
client/server mode and LMTP/SMTP is way more robust then using pipe and
FILTER.

The 251 exit status you see is in reality a -5 exit status but because you
use pipe the return value is modulo 256 and that -5 then returns a 251.

You can easy test this by executing this here:
perl -e 'exit -5';echo ${?}

That should print out a exit code of 251 if I am not wrong. -5 is in DSPAM
equal to EFAILURE which is nothing more or less then "Failed to perform
operation".

You should however have something in your log regarding that failure. From
quickly looking at the dspamc code I would say that
... your configuration is not okay (very unlikely)
... the client can't connect to the DSPAM socket (I would guess this is
the issue)
... any other error has happened (I would need to fully trace such a
condition and I can't reproduce that here on my end)

Right now I don't see a way you could fix that on your end when using
pipe. Maybe a wrapper around the dspamc binary that is capturing those
negative values and the producing nice Postifx understandable return values
would be the easiest to implement solution for you?

In the long run I think DSPAM should allow to set those exit values from
with in the DSPAM configuration. That would be the most coherent solution
allowing to return proper exit codes that can be handled by any MTA (one
would just need to look what his/her MTA understands and then configure
DSPAM to deliver those exit codes).

To change DSPAM to expose those exit codes to be configurable from within
dspam.conf or any other currently available configuration mechanism is
going to take much, much time. I don't see that being done any time soon.

If you don't feel comfortable in writing a wrapper around dspamc then I
would suggest you to switch either to SMTP or to LMTP communication with
DSPAM since that is more likely to work in your condition.

It's anyway faster and more scalable in using SMTP/LMTP then lunching
every time a binary that communicates over a pipe with DSPAM. Is there any
specific reason that you use that pipe mechanism?

-- 
Kind Regards from Switzerland,

Stevan Bajić

----------------------------------------------------------------------

Comment By: Aria Stewart (aredridel)
Date: 2009-12-23 00:14

Message:
dspam   unix    -       n       n       -       15      pipe
  flags=Ru user=dspam argv=/usr/bin/dspamc --deliver=innocent --user
$recipient -i -f $sender -- $recipient

and then triggered with a FILTER dspam:unix action

----------------------------------------------------------------------

Comment By: Stevan Bajic (sbajic)
Date: 2009-12-21 23:43

Message:
I see nothing that pops directly to my eyes. Why is dspamc barking? Where
are you using it?

I do daily purging and log rotating over here and never have I had that
issue.

How are you communicating form Postfix with DSPAM? Could you post that
part of the configuration as well?

----------------------------------------------------------------------

Comment By: Aria Stewart (aredridel)
Date: 2009-12-21 23:34

Message:

# Include config
if [ -s /etc/sysconfig/dspam ]; then
  . /etc/sysconfig/dspam
fi

RUN_AS="${RUN_AS:-dspam}"
[ -x /sbin/runuser ] && SU="/sbin/runuser" || SU="su"

${SU} - ${RUN_AS} -s /bin/sh -c "/usr/bin/dspam_clean" > /dev/null
${SU} - ${RUN_AS} -s /bin/sh -c "/usr/bin/dspam_logrotate -a 30 -d
/var/spool/dspam/"


----------------------------------------------------------------------

Comment By: Stevan Bajic (sbajic)
Date: 2009-12-21 23:30

Message:
I am not concerned about the dspam_clean thing but the dspam_logrotate. How
do you call it? Do you restart DSPAM after running dspam_logrotate?

Could you post the code part that you run at 4:02am?

----------------------------------------------------------------------

Comment By: Aria Stewart (aredridel)
Date: 2009-12-21 23:27

Message:
I can't, however, replicate the problem running dspam_clean manually and
processing messages.

----------------------------------------------------------------------

Comment By: Aria Stewart (aredridel)
Date: 2009-12-21 23:21

Message:
Ah, yes. It's runing dspam_clean and dspam_logrotate at 4:02am.



----------------------------------------------------------------------

Comment By: Stevan Bajic (sbajic)
Date: 2009-12-21 18:10

Message:
Hallo Aria,

is there any thing that you run at 4am? A script purging tokens? Anything
that fiddles around with your storage db?

-- 
Kind Regards from Switzerland,

Stevan Bajić

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=1126467&aid=2916563&group_id=250683

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Dspam-devel mailing list
Dspam-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspam-devel

Reply via email to