Yeah, it's really annoying issue. I can add to your summary that poptimeout option is not very useful because POP daemon may stall much more than its value. It's because of blocking write() call whose timeout depends on TCP settings of host system. For example, with my system defaults timeout reaches 30 minutes. It's possible to play with /proc/sys/net/ipv4/tcp_retries2 (on Linux) to reduce it. The best solution I could implement is to search and kill all pop3d daemons (there should be only one) belonging to user when he logs on. I do it with pam_exec module. PAM config and script in attachment. It works for me, but my server load is not very big so some race issues with bigger load are possible. -- Vladimir Vassiliev <vova@xxxxxxxxxx>
auth required pam_unix.so auth optional pam_exec.so debug log=/var/log/kill_pop3d.log /usr/local/cyrus/bin/kill_pop3d account required pam_permit.so
Attachment:
kill_pop3d
Description: application/shellscript
---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html