I've been receiving several alerts from my mail filtering server, because it's reaching the max limit of SMTP connections... Not a new thing, a lot of plug-ins can increase their processing time depending on external factors.

BUT yesterday I couldn't find any culprit plug-in. In fact, I disabled ALL plug-ins. Basically my qpsmtpd/config/plugins file was left to this (for testing):

rcpt_ok
queue/qmail-queue

Nothing... Then I increased the max limit from 80 to 160, and then to 200, but the limit has been constantly reached since yesterday 3:00pm. This server has handled about 20 smtp connections for months.

So, I noticed that one (then several) of the "qpsmtpd-forkserver" processes had been running for almost half an hour. I know the default timeout value is 1200 seconds (20 min), so I changed "timeoutsmtpd" and "timeout" to 300 seconds (5min).

... It doesn't work. I haven't seen in the logs any message about dropping a connection due to a timeout. Processes are still alive after 30 o 45 min.

Then a found these lines commented out in qpsmtpd/lib/Qpsmtpd/SMTP.pm:

# this is only good for forkserver
# can't set these here, cause forkserver resets them
#$SIG{ALRM} = sub { respond(421, "Game over pal, game over. You got a timeout; I just can't wait that long..."); exit };
#$SIG{ALRM} = sub { warn "Connection Timed Out\n"; exit; };

Except from these commented lines, I can't find any other thing handling the "alarms".

Maybe, can someone explain me how is sopposed to work the timeout??


Qpsmtpd: 0.31.1
Running under daemontools: qpsmtpd-forkserver


Thanks for any comment!!!



--
Oscar Retana
Tel: (506) 258-5757
San José, Costa Rica
Gridshield: Protección y Monitoreo de Redes


Reply via email to