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: 1. dsync_mailbox_tree_get_selectable() calls mailbox_get_status(…, STATUS_UIDVALIDITY | STATUS_UIDNEXT, …) without STATUS_HIGHESTMODSEQ. 2. 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
