Hi,
I've just straced a dovecot imap process and found one thread sitting
there doing hundreds and hundreds of maildirsize updates as follows:
>
> open("/home/virtual/mydomain.com/home/admin/Maildir/maildirsize",
O_RDWR|O_APPEND) = 7
> read(7, "10485760000S\n1562717408 107547\n-"..., 5120) = 2446
> read(7, "", 2674) = 0
> write(1, "* 1810 FETCH (UID 1815 RFC822.SI"..., 2031) = 2031
> setsockopt(1, SOL_TCP, TCP_CORK, [0], 4) = 0
> epoll_wait(4, {{EPOLLIN, {u32=101056896, u64=2370923004288}}}, 5, 2584) = 1
> read(0, "2838 UID fetch 1816 (UID RFC822."..., 2974) = 51
> setsockopt(1, SOL_TCP, TCP_CORK, [1], 4) = 0
> close(7) = 0
> open("/home/virtual/mydomain.com/home/admin/Maildir/maildirsize",
O_RDWR|O_APPEND) = 7
> read(7, "10485760000S\n1562717408 107547\n-"..., 5120) = 2446
> read(7, "", 2674) = 0
>
open("/home/virtual/mydomain.com/home/admin/Maildir/.Folders.ALERTS.Payments/cur/1195331425.M52296P11937V0000000000000807I000000001015A5EB_0.tg3,S=2079:2,Sa",
O_RDONLY) = 10
> fstat(10, {st_mode=S_IFREG|0600, st_size=2079, ...}) = 0
> pread(10, "Return-Path: <apache at tg7.alumina"..., 4096, 0) =
2079
> pread(10, "", 2017, 2079) = 0
> pread(10, "Return-Path: <apache at tg7.alumina"..., 4096, 0) =
2079
> write(1, "* 1811 FETCH (UID 1816 RFC822.SI"..., 2180) = 2180
> close(10) = 0
>
stat("/home/virtual/mydomain.com/home/admin/Maildir/.Folders.ALERTS.Payments/new",
{st_mode=S_IFDIR|0700, st_size=6, ...}) = 0
>
stat("/home/virtual/mydomain.com/home/admin/Maildir/.Folders.ALERTS.Payments/cur",
{st_mode=S_IFDIR|0700, st_size=618496, ...}) = 0
> close(7) = 0
> open("/home/virtual/mydomain.com/home/admin/Maildir/maildirsize",
O_RDWR|O_APPEND) = 7
> read(7, "10485760000S\n1562717408 107547\n-"..., 5120) = 2446
> read(7, "", 2674) = 0
> write(1, "2838 OK Fetch completed.\r\n", 26) = 26
> setsockopt(1, SOL_TCP, TCP_CORK, [0], 4) = 0
> epoll_wait(4, {}, 5, 800) = 0
> epoll_wait(4, {{EPOLLIN, {u32=101056896, u64=2370923004288}}}, 5, 5000) = 1
> read(0, "2839 UID fetch 1817 (UID RFC822."..., 2923) = 51
> setsockopt(1, SOL_TCP, TCP_CORK, [1], 4) = 0
> close(7) = 0
> open("/home/virtual/mydomain.com/home/admin/Maildir/maildirsize",
O_RDWR|O_APPEND) = 7
During this time (at least 5-10 minutes) , I could not check the account
via my email client Thunderbird. Clicking on an email would just sit
there as if it is loading but nothing would happen - the read pane just
remains blank.
Is Dovecot going through every email (of many 10,000's) and counting up
the sizes? Could this be made more efficient so it doesn't lock the account?
This could I guess be a Thunderbird issue - it is a disappointingly
imperfect client.
Dan