On 5.2.2013, at 11.57, Jan-Frode Myklebust <[email protected]> wrote:
> I think there must be some bug I'm hitting here. One of my directors > is still running with "client_limit = 1, process_limit = 100" for the > lmtp service, and now it's logging: > > master: Warning: service(lmtp): process_limit (100) reached, client > connections are being dropped > > Checking "sudo netstat -anp|grep ":24 " I see 287 ports in TIME_WAIT, > one in CLOSE_WAIT and the listening "0.0.0.0:24". No active > connections. There are 100 lmtp-processes running. Sounds like the LMTP processes are hanging for some reason.. http://hg.dovecot.org/dovecot-2.1/rev/63117ab893dc might show something interesting, although I'm pretty sure it will just say that the processes are hanging in DATA command. Other interesting things to check: gdb -p <pid of lmtp process> bt full strace -tt -p <pid of lmtp process> (for a few seconds to see if anything is happening) If lmtp proxy is hanging, it should have a timeout (default 30 secs) and it should log about it if it triggers. (Although maybe not to error log.) > When trying to > connect to the lmtp-port I immediately get dropped: > > $ telnet localhost 24 > Trying 127.0.0.1... > Connected to localhost.localdomain (127.0.0.1). > Escape character is '^]'. > Connection closed by foreign host. This happens when the master process notices that all the service processes are full. > Is there maybe some counter that's getting out of sync, or some back > off penalty algorithm that kicks in when it first hit the process > limit ? Shouldn't be, but the proctitle patch should make it clearer. Strange anyway, I haven't heard of anything like this happening before.
