Dear list, We moved our dovecot installation to a new vm, and ever since there are problems logging in to our imap server during office hours. ( Evenings and weekends are fine. ) Both the new and the old machine are dovecot 2.2.13. Symptoms: Logging in via imap gives: . OK Pre-login capabilities listed, post-login capabilities have more. a login <loginname> <passwd> * OK Waiting for authentication master process to respond.. closed whereas using the same credentials with pop3: +OK Dovecot ready. user <loginname> +OK pass <passwd> +OK Logged in. Our mail.err log gives lots of: dovecot: imap-login: Error: master(imap): Auth request timed out (received 0/12 bytes) dovecot: imap: Error: Login client disconnected too early dovecot: auth: Error: Master request 24000.918 not found dovecot: master: Error: service(imap): fork() failed: Resource temporarily unavailable dovecot: master: Error: service(imap): command startup failed, throttling for 2 secs Note thate we our users almost exclusively use imap. Normally we would have some 7 or 800 imap processes running and only a few pop3. Our doveconf -n output: # 2.2.13: /etc/dovecot/dovecot.conf # OS: Linux 4.4.38-93-default x86_64 SUSE Linux Enterprise Server 12 (x86_64) auth_mechanisms = plain login default_client_limit = 2000 default_process_limit = 2000 default_vsz_limit = 512 M disable_plaintext_auth = no imap_client_workarounds = tb-extra-mailbox-sep import_environment = TZ DEBUG_OUTOFMEM DOVECOT_HOSTDOMAIN mail_location = maildir:~/Maildir mail_plugins = " quota" managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave namespace inbox { inbox = yes location mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix } passdb { args = /etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { quota = maildir:User quota quota_rule = *:storage=1G quota_rule2 = Trash:storage=+10%% sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocols = imap pop3 lmtp sieve service anvil { client_limit = 8003 } service auth { client_limit = 10000 unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = dovecot mode = 0666 } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 4 service_count = 0 } service imap { process_limit = 2048 } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } process_min_avail = 4 service_count = 0 } service pop3 { process_limit = 2048 } ssl_cert = </etc/ssl/certs/hkuwildcardthawte.crt ssl_key = </etc/ssl/certs/hkuwildcardthawte.key ssl_protocols = !SSLv2 !SSLv3 userdb { args = /etc/dovecot/dovecot-ldap-userdb.conf driver = ldap } protocol lmtp { mail_plugins = " quota sieve" } protocol lda { mail_plugins = " quota sieve" } protocol imap { mail_max_userip_connections = 10 mail_plugins = " quota imap_quota" } Thank you all for any insight, it will be much appreciated! Best regards, gerard
Hello Gerard ! On Tuesday, March 28, 2017 4:55 PM, Gerard Ranke <gerard.ranke at hku.nl> wrote:> dovecot: master: Error: service(imap): fork() failed: Resource> >temporarily unavailable > >dovecot: master: Error: service(imap): command startup failed, > >throttling for 2 secs > > >Note thate we our users almost exclusively use imap. Normally we would > >have some 7 or 800 imap processes running and only a few pop3.Could it be an OS (or VM) limit on the number of processes you can create ? -- Yassine.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Tue, 28 Mar 2017, Gerard Ranke wrote:> dovecot: master: Error: service(imap): fork() failed: Resource > temporarily unavailable > dovecot: master: Error: service(imap): command startup failed, > throttling for 2 secscheck out the ulimits for the Dovecot process. - -- Steffen Kaiser -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEVAwUBWNuOn3z1H7kL/d9rAQIj1AgAxH8id+JVGJ7YBVKQkSOfb2N160UNRkNo hZ/6HLPfI3pBIzypccvvV+rHtv8pxvURjG1fbAoDBaMlmDWau0gMFJwepBunuEYx gBQGtrBvsABV2nv5kagP5V8TJjzLZplk4/vz0YGsOjlz2JhxbgHcLLA2FyQKTXgc TWGpmcfWUDTQgQeOLVJcfJUBtbdH4MV0JuDCaiVcbtDuWYpWPRWPw+7Gp4gL46X1 orzD9T4+C/80oBtnUV2fERW7ITeRJTgQ3bR1tKYFQmMDJNpQL78G5P06bJB1D8ob 43TO1Ylb/vz4B2+WnM34gKRQcorcNENuuCjLC6Cy1mQ3MK7kjjoZ8Q==HW21 -----END PGP SIGNATURE-----
Hi Steffen, On 29-03-17 12:38, Steffen Kaiser wrote:> On Tue, 28 Mar 2017, Gerard Ranke wrote: > >> dovecot: master: Error: service(imap): fork() failed: Resource >> temporarily unavailable >> dovecot: master: Error: service(imap): command startup failed, >> throttling for 2 secs > > check out the ulimits for the Dovecot process. > > -- Steffen KaiserHere they are: dovecot at mail:~> ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 256942 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 10000 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 256942 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited This looks ok to me, but on startup, I still get: dovecot[9309]: Warning: fd limit (ulimit -n) is lower than required under max. load (1024 < 10000), because of service auth { client_limit } Strange thing is that dovecot still complains about the fd limit being 1024, while I set it to 10000. And how can a ulimit be too low 'because of service auth'? I don't get that at all. Thanks for your interest! gerard
Hi Maria, It does indeed run from systemd, so this is what's currently in the dovecot unit file ( /etc/systemd/system/dovecot.service ): [Unit] Description=Dovecot IMAP/POP3 email server After=local-fs.target network.target [Service] Type=simple ExecStart=/usr/sbin/dovecot -F NonBlocking=yes TasksMax=10000 LIMIT_NOFILE=10000 [Install] WantedBy=multi-user.target Unfortunately, it doesn't seem to work... Best, gerard On 29-03-17 13:13, Mar?a Arrea wrote:> > If you are running dovecot via systemd, increase NOFILES in the > dovecot startup script > > El 29/03/17 a las 13:07, Gerard Ranke escribi?: >> Hi Steffen, >> >> On 29-03-17 12:38, Steffen Kaiser wrote: >>> On Tue, 28 Mar 2017, Gerard Ranke wrote: >>> >>>> dovecot: master: Error: service(imap): fork() failed: Resource >>>> temporarily unavailable >>>> dovecot: master: Error: service(imap): command startup failed, >>>> throttling for 2 secs >>> check out the ulimits for the Dovecot process. >>> >>> -- Steffen Kaiser >> Here they are: >> >> dovecot at mail:~> ulimit -a >> core file size (blocks, -c) 0 >> data seg size (kbytes, -d) unlimited >> scheduling priority (-e) 0 >> file size (blocks, -f) unlimited >> pending signals (-i) 256942 >> max locked memory (kbytes, -l) 64 >> max memory size (kbytes, -m) unlimited >> open files (-n) 10000 >> pipe size (512 bytes, -p) 8 >> POSIX message queues (bytes, -q) 819200 >> real-time priority (-r) 0 >> stack size (kbytes, -s) 8192 >> cpu time (seconds, -t) unlimited >> max user processes (-u) 256942 >> virtual memory (kbytes, -v) unlimited >> file locks (-x) unlimited >> >> This looks ok to me, but on startup, I still get: >> >> dovecot[9309]: Warning: fd limit (ulimit -n) is lower than required >> under max. load (1024 < 10000), because of service auth { client_limit } >> >> Strange thing is that dovecot still complains about the fd limit being >> 1024, while I set it to 10000. And how can a ulimit be too low 'because >> of service auth'? I don't get that at all. Thanks for your interest! >> >> gerard > >
Hello,> > It does indeed run from systemd, so this is what's currently in the > dovecot unit file ( /etc/systemd/system/dovecot.service ): >...> [Service] > Type=simple > ExecStart=/usr/sbin/dovecot -F > NonBlocking=yes > TasksMax=10000 > LIMIT_NOFILE=10000... the parameter should be named LimitNOFile=10000 (without the underscore), see http://man7.org/linux/man-pages/man7/systemd.directives.7.html and http://man7.org/linux/man-pages/man5/systemd.exec.5.html --Andreas -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 5176 bytes Desc: S/MIME Cryptographic Signature URL: <http://dovecot.org/pipermail/dovecot/attachments/20170329/08931909/attachment.p7s>