Eirik Rye
2020-Jan-08 10:33 UTC
Upgrade 2.2.27 to 2.3.9.2: master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable
On 08/01/2020 11:09, Aki Tuomi wrote:> Can you enable 'verbose_proctitle=yes' and maybe compare with ss -tp output?Thanks for the response! What exactly did you want to compare? `ss -tp` does not appear to show cmdline/process title. I enabled it for one server, but will have to wait for users to reconnect and for the issue to reappear there. In the meantime, on another server experiencing the same issue at this moment (same configuration), but no proctitles: root at imap03:~# doveadm process status | grep "^imap " | wc -l 7564 root at imap03:~# ps aux | grep "dovecot/imap$" | wc -l 7570 root at imap03:~# ss -tp | grep '"imap-login"' | wc -l 8009 root at imap03:~# ss -tp | grep '"imap"' | wc -l 536 root at imap03:~# ss -nt "( sport = :143 or sport = :993 )" | wc -l 8739 root at imap03:~# doveadm who -1 | wc -l 7581 The `ss -tp` output appears normal (e.g. 8009+536 ~= 8739). -- Eirik
Eirik Rye
2020-Jan-08 14:14 UTC
Upgrade 2.2.27 to 2.3.9.2: master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable
With proctitles below.
Strangely, Dovecot is reporting 12679 imap-login sockets in
"pre-login"
state, which is about 50% more than there are active TCP connections to
the server (8271, of which 7546 are in "imap-login" process according
to
`ss -tp`).
On another server, not currently experiencing this issue, the number of
TCP sockets appears to more closely match the number of imap-login
sockets used (either in pre-login or TLS proxing).
imap:~# ps -f --ppid `pidof dovecot` | egrep -v "dovecot/(imap|pop3) "
UID PID PPID C STIME TTY TIME CMD
dovenull 5262 5260 0 11:48 ? 00:00:00 dovecot/pop3-login
dovenull 5263 5260 2 11:48 ? 00:03:53 dovecot/imap-login [724
pre-login + 113 TLS proxies]
dovecot 5264 5260 0 11:48 ? 00:01:15 dovecot/anvil [21
connections]
root 5265 5260 1 11:48 ? 00:02:18 dovecot/log
dovenull 5266 5260 0 11:48 ? 00:00:00 dovecot/pop3-login
dovenull 5267 5260 0 11:48 ? 00:00:00 dovecot/pop3-login
dovenull 5268 5260 0 11:48 ? 00:00:00 dovecot/pop3-login
dovenull 5269 5260 20 11:48 ? 00:35:34 dovecot/imap-login [1073
pre-login + 1199 TLS proxies]
dovenull 5270 5260 1 11:48 ? 00:02:25 dovecot/imap-login [615
pre-login + 67 TLS proxies]
dovenull 5271 5260 0 11:48 ? 00:01:39 dovecot/imap-login [489
pre-login + 44 TLS proxies]
dovenull 5272 5260 14 11:48 ? 00:24:44 dovecot/imap-login [938
pre-login + 720 TLS proxies]
dovenull 5273 5260 6 11:48 ? 00:10:30 dovecot/imap-login [845
pre-login + 242 TLS proxies]
dovenull 5274 5260 4 11:48 ? 00:06:54 dovecot/imap-login [817
pre-login + 209 TLS proxies]
dovenull 5275 5260 0 11:48 ? 00:01:23 dovecot/imap-login [445
pre-login + 36 TLS proxies]
dovenull 5276 5260 25 11:48 ? 00:43:14 dovecot/imap-login [1064
pre-login + 1434 TLS proxies]
dovenull 5277 5260 1 11:48 ? 00:02:19 dovecot/imap-login [523
pre-login + 58 TLS proxies]
dovenull 5278 5260 9 11:48 ? 00:16:19 dovecot/imap-login [937
pre-login + 462 TLS proxies]
dovenull 5279 5260 19 11:48 ? 00:33:24 dovecot/imap-login [937
pre-login + 823 TLS proxies]
dovenull 5280 5260 1 11:48 ? 00:03:04 dovecot/imap-login [655
pre-login + 92 TLS proxies]
dovenull 5281 5260 26 11:48 ? 00:45:20 dovecot/imap-login [969
pre-login + 1450 TLS proxies]
dovenull 5282 5260 6 11:48 ? 00:10:55 dovecot/imap-login [917
pre-login + 303 TLS proxies]
dovenull 5283 5260 4 11:48 ? 00:08:36 dovecot/imap-login [731
pre-login + 128 TLS proxies]
root 5284 5260 2 11:48 ? 00:03:55 dovecot/config
dovecot 5285 5260 1 11:48 ? 00:02:19 dovecot/stats [7968
connections]
dovecot 5286 5260 3 11:48 ? 00:05:53 dovecot/auth [138 wait,
0 passdb, 0 userdb]
528246 10322 5260 0 14:36 ? 00:00:00 [imap]
root 16688 5260 0 14:40 ? 00:00:00 dovecot/imap
imap02:~# doveadm process status | grep "^imap-login " | awk
"{sum +=
2500-\$3} END {print sum}"
20081
imap:~# ps -f --ppid `pidof dovecot` | grep "dovecot/imap " | wc -l
7937
imap:~# doveadm process status | grep "^imap " | wc -l
7937
imap:~# ss -ntp "( sport = :143 or sport = :993 )" | grep
"\"imap\"" | wc -l
559
imap:~# ss -ntp "( sport = :143 or sport = :993 )" | grep
"\"imap-login\"" | wc -l
7546
imap:~# ss -ntp "( sport = :143 or sport = :993 )" | wc -l
8271
On 08/01/2020 11:33, Eirik Rye wrote:> On 08/01/2020 11:09, Aki Tuomi wrote:
>> Can you enable 'verbose_proctitle=yes' and maybe compare with
ss -tp
>> output?
>
> Thanks for the response!
>
> What exactly did you want to compare? `ss -tp` does not appear to show
> cmdline/process title. I enabled it for one server, but will have to
> wait for users to reconnect and for the issue to reappear there.
>
> In the meantime, on another server experiencing the same issue at this
> moment (same configuration), but no proctitles:
>
> root at imap03:~# doveadm process status | grep "^imap " | wc -l
> 7564
> root at imap03:~# ps aux | grep "dovecot/imap$" | wc -l
> 7570
> root at imap03:~# ss -tp | grep '"imap-login"' | wc -l
> 8009
> root at imap03:~# ss -tp | grep '"imap"' | wc -l
> 536
> root at imap03:~# ss -nt "( sport = :143 or sport = :993 )" | wc
-l
> 8739
> root at imap03:~# doveadm who -1 | wc -l
> 7581
>
> The `ss -tp` output appears normal (e.g. 8009+536 ~= 8739).
>
--
Eirik
Eirik Rye
2020-Jan-09 14:56 UTC
Upgrade 2.2.27 to 2.3.9.2: master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable
As a workaround for the titular issue, I have tried enabling the "imap-hibernate" service on a couple of servers to reduce the number of running imap processes. Since ~50-60% of clients are in IDLE at any one time, this allows us to reduce the number of running imap processes to less than half of what it was. After this I have yet to see the "net_connect_unix(imap) failed" errors on these servers, however instead we are now instead seeing a few of these: imap([redacted])<30266><[redacted]>: Error: imap-master: Failed to import client state: Mailbox INBOX: Couldn't get recently expunged UIDs (uidnext=13479 highest_modseq=1716) and imap([redacted])<20055><[redacted]>: Error: imap-master: Failed to import client state: Mailbox INBOX: Couldn't send flag changes imap([redacted])<20055><[redacted]>: NOTIFY failed in the middle of FETCH reply in=0 out=0 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0 The former I suspect may be related to our NFS-backed store and simultaneous access from different, since many of the errors are accompanied by other corruption related errors: imap([redacted])<30266><[redacted]>: Error: Mailbox INBOX: vsize-hdr has invalid size: 36 This whole upgrade is part of a migration to a director-backed system, because we are seeing a too large amount of corruption errors (locking/indexes, etc) assumed to be caused by NFS. Once we introduce the director cluster in front, these errors should hopefully be strongly reduced. :-) -- Eirik On 08/01/2020 15:14, Eirik Rye wrote:> With proctitles below. > > Strangely, Dovecot is reporting 12679 imap-login sockets in "pre-login" > state, which is about 50% more than there are active TCP connections to > the server (8271, of which 7546 are in "imap-login" process according to > `ss -tp`). > > On another server, not currently experiencing this issue, the number of > TCP sockets appears to more closely match the number of imap-login > sockets used (either in pre-login or TLS proxing). > > imap:~# ps -f --ppid `pidof dovecot` | egrep -v "dovecot/(imap|pop3) " > UID??????? PID? PPID? C STIME TTY????????? TIME CMD > dovenull? 5262? 5260? 0 11:48 ???????? 00:00:00 dovecot/pop3-login > dovenull? 5263? 5260? 2 11:48 ???????? 00:03:53 dovecot/imap-login [724 > pre-login + 113 TLS proxies] > dovecot?? 5264? 5260? 0 11:48 ???????? 00:01:15 dovecot/anvil [21 > connections] > root????? 5265? 5260? 1 11:48 ???????? 00:02:18 dovecot/log > dovenull? 5266? 5260? 0 11:48 ???????? 00:00:00 dovecot/pop3-login > dovenull? 5267? 5260? 0 11:48 ???????? 00:00:00 dovecot/pop3-login > dovenull? 5268? 5260? 0 11:48 ???????? 00:00:00 dovecot/pop3-login > dovenull? 5269? 5260 20 11:48 ???????? 00:35:34 dovecot/imap-login [1073 > pre-login + 1199 TLS proxies] > dovenull? 5270? 5260? 1 11:48 ???????? 00:02:25 dovecot/imap-login [615 > pre-login + 67 TLS proxies] > dovenull? 5271? 5260? 0 11:48 ???????? 00:01:39 dovecot/imap-login [489 > pre-login + 44 TLS proxies] > dovenull? 5272? 5260 14 11:48 ???????? 00:24:44 dovecot/imap-login [938 > pre-login + 720 TLS proxies] > dovenull? 5273? 5260? 6 11:48 ???????? 00:10:30 dovecot/imap-login [845 > pre-login + 242 TLS proxies] > dovenull? 5274? 5260? 4 11:48 ???????? 00:06:54 dovecot/imap-login [817 > pre-login + 209 TLS proxies] > dovenull? 5275? 5260? 0 11:48 ???????? 00:01:23 dovecot/imap-login [445 > pre-login + 36 TLS proxies] > dovenull? 5276? 5260 25 11:48 ???????? 00:43:14 dovecot/imap-login [1064 > pre-login + 1434 TLS proxies] > dovenull? 5277? 5260? 1 11:48 ???????? 00:02:19 dovecot/imap-login [523 > pre-login + 58 TLS proxies] > dovenull? 5278? 5260? 9 11:48 ???????? 00:16:19 dovecot/imap-login [937 > pre-login + 462 TLS proxies] > dovenull? 5279? 5260 19 11:48 ???????? 00:33:24 dovecot/imap-login [937 > pre-login + 823 TLS proxies] > dovenull? 5280? 5260? 1 11:48 ???????? 00:03:04 dovecot/imap-login [655 > pre-login + 92 TLS proxies] > dovenull? 5281? 5260 26 11:48 ???????? 00:45:20 dovecot/imap-login [969 > pre-login + 1450 TLS proxies] > dovenull? 5282? 5260? 6 11:48 ???????? 00:10:55 dovecot/imap-login [917 > pre-login + 303 TLS proxies] > dovenull? 5283? 5260? 4 11:48 ???????? 00:08:36 dovecot/imap-login [731 > pre-login + 128 TLS proxies] > root????? 5284? 5260? 2 11:48 ???????? 00:03:55 dovecot/config > dovecot?? 5285? 5260? 1 11:48 ???????? 00:02:19 dovecot/stats [7968 > connections] > dovecot?? 5286? 5260? 3 11:48 ???????? 00:05:53 dovecot/auth [138 wait, > 0 passdb, 0 userdb] > 528246?? 10322? 5260? 0 14:36 ???????? 00:00:00 [imap] > root???? 16688? 5260? 0 14:40 ???????? 00:00:00 dovecot/imap > imap02:~# doveadm process status | grep "^imap-login " | awk "{sum += > 2500-\$3} END {print sum}" > 20081 > imap:~# ps -f --ppid `pidof dovecot` | grep "dovecot/imap " | wc -l > 7937 > imap:~# doveadm process status | grep "^imap " | wc -l > 7937 > imap:~# ss -ntp "( sport = :143 or sport = :993 )" | grep "\"imap\"" | > wc -l > 559 > imap:~# ss -ntp "( sport = :143 or sport = :993 )" | grep > "\"imap-login\"" | wc -l > 7546 > imap:~# ss -ntp "( sport = :143 or sport = :993 )" | wc -l > 8271 > > On 08/01/2020 11:33, Eirik Rye wrote: >> On 08/01/2020 11:09, Aki Tuomi wrote: >>> Can you enable 'verbose_proctitle=yes' and maybe compare with ss -tp >>> output? >> >> Thanks for the response! >> >> What exactly did you want to compare? `ss -tp` does not appear to show >> cmdline/process title. I enabled it for one server, but will have to >> wait for users to reconnect and for the issue to reappear there. >> >> In the meantime, on another server experiencing the same issue at this >> moment (same configuration), but no proctitles: >> >> root at imap03:~# doveadm process status | grep "^imap " | wc -l >> 7564 >> root at imap03:~# ps aux | grep "dovecot/imap$" | wc -l >> 7570 >> root at imap03:~# ss -tp | grep '"imap-login"' | wc -l >> 8009 >> root at imap03:~# ss -tp | grep '"imap"' | wc -l >> 536 >> root at imap03:~# ss -nt "( sport = :143 or sport = :993 )" | wc -l >> 8739 >> root at imap03:~# doveadm who -1 | wc -l >> 7581 >> >> The `ss -tp` output appears normal (e.g. 8009+536 ~= 8739). >> > >
Reasonably Related Threads
- Upgrade 2.2.27 to 2.3.9.2: master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable
- Upgrade 2.2.27 to 2.3.9.2: master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable
- Upgrade 2.2.27 to 2.3.9.2: master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable
- Upgrade 2.2.27 to 2.3.9.2: master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable
- Upgrade 2.2.27 to 2.3.9.2: master(imap): net_connect_unix(imap) failed: Resource temporarily unavailable