Daniel Shahaf wrote on Thu, 06 Feb 2020 03:37 +0000:
Good morning,
I use «doveadm backup -R -m foo -s $state» to create a local mirror of an imapc remote folder. When I run that command, wait for it to finish, deliver a new message to the remote folder, and run that command again, the new message does not get downloaded from the remote. ⋮ dsync(fmsync): Debug: brain M: Skipping mailbox $guid1 with unchanged state uidvalidity=1529153257 uidnext=24289 highestmodseq=4910711 highestpvtmodseq=0 messages=24117 ⋮ 1580957437.725211 5 STATUS "lists/zsh" (UIDNEXT UIDVALIDITY) 1580957437.869540 * STATUS lists/zsh (UIDNEXT 24290 UIDVALIDITY 1529153257) 1580957437.869540 5 OK Completed ⋮ ]]]
So, my question is: Why doesn't «doveadm backup» sync the new message? (Message number 24118, UID 24289, ESMTP ID 48CjYx6xvmzWp)
I've grepped around and found two potentially relevant bits of code:
dsync_mailbox_tree_get_selectable() calls mailbox_get_status(…, STATUS_UIDVALIDITY | STATUS_UIDNEXT, …) without STATUS_HIGHESTMODSEQ.
imapc_mailbox_get_selected_status() silently ignores the STATUS_HIGHESTMODSEQ flag.
Could either of these be related?
(I haven't had time to do a debug build to investigate further myself.)
Cheers,
Daniel