Charlie Brady escribió:

This is where I pop up and remind folks there's a long-standing bug that
no time limits are applied to plug-in callbacks.

Right now I don't know if plugin callbacks would solve this problem. I'm starting to think it is DESTROY related... I feel that plugin timeouts are a more profund discussion, so I won't get into it (yet).

I've been bugging aroung the Qp code to find what's going on with these processes... What was my surprise when I saw:

    $SIG{ALRM} = sub {
       print $client "421 Connection Timed Out\n";
       ::log(LOGINFO, "Connection Timed Out");
       exit; };

in the qpsmtpd-forkserver code... just in the portion of code for child processes :)

The bad thing is that it is never called, because alarm is never called :S ¿Is there any other way to send yourself ALRMs?

When you send an ALRM to one of the hung processes, it exits... It looks like this feature got in to forkserver at rev 291... but it seems like it never worked... Maybe a plugin was supposed to call alarm? Maybe the parent process was supposed to send the ALRM to a child that has been working for too long? (that way you don't have to worry about plugins that touch the ALRM handler... I'm not saying the plugin developer does it consciouslly... maybe just the classes he uses...).

Is it safe to just make a plugin that hooks to the connect and does an alarm($session_timeout). It will only be usable for the forkserver, but at least it's something.

I also saw that in SMTP.pm there are two commented out lines referring to ALRMs... so it looks like the session timeout was a working feature at some point...

What do you guys think about restoring this feature?

Jose Luis Martinez
CAPSiDE
[EMAIL PROTECTED]

Reply via email to