[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: recent version

It is friday evening, and I opened a can of beer.  I really should not
code for next few hours...  (sure I produce a lot of code after a sip,
but damn I need lots more time to debug the stuff..)

On Fri, Jul 09, 2004 at 05:47:14PM +0400, Eugene Crosser wrote:
> On Fri, 2004-07-09 at 15:22 +0300, Matti Aarnio wrote:

A correction to  aliases.cf  applied, ChangeLog explains...

> > > 3. It seems that socket interface to the contentfilter got broken?  I'd
> > > prefer to use it with my zmscanner (forking "zmscanner -i 0" does not
> > > seem to work right now).
> > 
> > It should work just like before.  The relevant code was moved from
> > contentpolicy.c  to subdaemon-ctf.c   and has new function names,
> > but otherwise it is unchanged.
> > Of course I have only tested the "fork and run" variant myself, not
> > named socket one.
> What is fdpass_sendfd?
> when socket interface to contentfilter is used, on the first try I get
> this:

It is the common underlying tool within the smtpserver service process
family, that forms a connection of Subserver S, and active smtp server

> INapCMf0000#    000-smtpcontentfilter_init: fdpass_sendfd(8,13) rc=0, errno=Error 0
> INapCMf0000#    000-smtpcontentfilter_init; 9
> INapCMf0000#    000-smtpcontentfilter_init; 10
> INapCMf0000#    000-smtpcontentfilter_init; 11; errno=Error 0
> INapCMf0000#    000-smtpcontentfilter_init; 12

The contentfilter server connection has been done successfully.

> INapCMf0000#    000-fdgets()->61300 rc=-1 buf=""
> INapCMf0000#    000-Interactive contentfilter timed out!

But then an EOF hits...  it really should say:  "EOFed!"  but
somehow it doesn't :-/   Oh..   smtpserver/subdaemons.c has
comments about proper return values in front of   fdgets()
function, but for EOFs it does return -1 ...

> (no real timeout of course, it happens instantly).  On subsequent
> submissions, the message is different:
> INjcCNN0001#    000-smtpcontentfilter_init: fdpass_sendfd(8,13) rc=-1, errno=Broken pipe
> INjcCNN0001#    000-Failed to init interactive contentfilter subsystem

At nic.funet.fi (Solaris) there is following process bush:

 root  4702   1d223530   0:32.620 |  smtpserver -s strict -sve -l /var/log/mail/smtpserver
 root  4706   1d223527   0:06.880 |  |--smtpserver -I sub-ratetracker -Z /opt/mail/zmailer.conf
 root  4707   1d223527   0:04.860 |  |  smtpserver -I sub-contentfilter -Z /opt/mail/zmailer.conf
 root  4708   1d223527   0:09.660 |  |  smtpserver -I sub-router -Z /opt/mail/zmailer.conf
 root  4788   1d223458   3:26.860 |  |  |--router -io-i -Ismtpserver
 root  5887   1d222355   0:01.630 |  |  |  router -io-i -Ismtpserver

(reported by 'sps' tool, available from:  ftp.funet.fi:/pub/local/src/sol-sps/ )

In systems capable to mutate visible commandlines (BSD, Linux) those
server processes look a bit different, but same subsystems exist there

I bet that you get the result, because  -I sub-contentfilter  process
does crash.  It does also explain, why the second   fdpass_sendfd()
yields "Broken Pipe", as the fd that the contentfilter process is
listening to is all the sudden rather dead...

If you can, attaching a debugger on that process before sending it any
contentfilter tasks would be most educative.

> Eugene
/Matti Aarnio	<mea@nic.funet.fi>
To unsubscribe from this list: send the line "unsubscribe zmailer" in
the body of a message to majordomo@nic.funet.fi