> On 9 Sep 2018, at 18.42, Andreas Thienemann <andr...@bawue.net> wrote:
>
> Hi,
>
> I am attempting to migrate a mailspool from a cyrus server to a dovecot
> server using the dsync backup approach as described in the wiki at
> <https://wiki.dovecot.org/Migration/Dsync>.
>
> The first attempt works great. Everything copies over and a quick glance over
> the spool looks good.
>
> Running doveadm backup again though results in the following error:
>
> dsync(eggs): Warning: Deleting mailbox 'INBOX.MailRestore': UID=39 already
> exists locally for a different mail: Headers hashes don't match
> (18d567fc7e258a67e47b629c8bb16500 vs 230354b2d5cad21ebbb4a7440b977adb)
>
> As promised, the folder MailRestore is gone after dsync finishes.
>
> Running doveadm backup again for the third time copies the folder again.
>
> Running it a fourth time gives the same error and the folder is gone.
>
> Trying to figure this out I initially had a few mails where the header hashes
> were 68b329da9893e34099c7d8ad5cb9c940, the md5sum of an empty string.
> Turns out that the source mailspool had a few broken emails and cleaning
> these out fixed most my issues.
>
> But in this case, I am stumped. UID 39 on the server is a valid mail with
> correct headers and everything.
>
> Is there a good way of identifying the two mails that seem to clash? I had a
> quick look at the dovecot code but did not see how the header_stream gets
> hashed into the hdr_hash used for comparing mails.
Is it possible to get imapc rawlogs to analyze? create a directory that is
writeable and add -o imapc_rawlog_dir=/path/to/directory to command line.
Also with recent dovecot release you can tell dsync which header fields to hash
when matching mails. Add dsync_hashed_headers=Message-ID to config and dovecot
will only mach mails using Message-ID header fileld.
dsync_hashed_headers setting is supported since dovecot 2.2.33.
Sami