On 05/09/2023 18:50 EEST Eirik Rye rye@trojka.no wrote:
Hello,
# dovecot --version 2.3.20 (80a5ac675d)
When using hibernation (
imap_hibernate_timeout = 10s
), counters such as deleted/expunged messages, appear to be reset after the user process is recreated.Steps to reproduce:
Configure IMAP hibernation
Login with IMAP client
Delete+expunge a message
IDLE, and wait 10s for process to be hibernated
Unhibernate process (
DONE
), and log outObserve the logged line:
2023-09-05T17:36:26+0200 imap(<redacted>)<776933><jA2nYJ4EPdcqAVtAAADwAAutur4AAAAB>: Info: Disconnected: Logged out in=9 out=88 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
The expected output is "deleted=1 expunged=1", not "deleted=0 expunged=0".
If you follow the steps above, but skip the IDLE/hibernate step, the output is as expected.
Interestingly, if the client is disconnected during hibernation (without recreating the process), the output from
imap-hibernate
is still as expected:2023-09-05T17:45:15+0200 imap-hibernate(<redacted>)<770540><0qE0gJ4Emt8qAVtAAADwAAutur4AAAAB>: Info: Disconnected: Connection closed in=97 out=1020 deleted=1 expunged=1 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0
This leads me to believe the counters are lost during process recreation, not during hibernation.
This is an issue as customers will often come to us asking why messages have disappeared in their inbox, or asking for help to identify which client is expunging messages.
Right now, this information is lost if hibernation is used and the client is hibernated after expunging.
Best regards, Eirik Rye
Hi!
Thank you for reporting this, we'll give it a look.
Aki