On 17.9.2013, at 6.25, Anand Kumria <wildfire@progsoc.org> wrote:
Another day, another dysnc attempt. Using Dovecot v2.2.5.4; I see:
Is it still duplicating mails? So if you first delete everything from destination directory, then run doveadm sync -1 twice it duplicates the mails? Or just gives them new UIDs without duplicating anything? I can't reproduce either with the latest hg version at least. There were a few fixes since v2.2.5, but I'm not sure if they were related to this.
# doveadm -v -o imapc_user=user@example.com -o imapc_password=password -o imapc_host=imap.example.com -o imapc_port=993 -o imapc_ssl=imaps -o imapc_ssl_dir=/etc/ssl -o imapc_feature=rfc822.size -o imapc_ssl_verify=no sync -1 -R -u user@example.com imapc: dsync(user@example.com): Info: copy from Drafts: box=Drafts, uid=8343, msgid=<4F387A25.5010900@example.com>, size=2954969 dsync(user@example.com): Info: copy from Drafts: box=Drafts, uid=8344, msgid=<5237B0BF.7030402@example.com>, size=3371710 dsync(user@example.com): Info: copy from Drafts: box=Drafts, uid=8345, msgid=<5237B588.6040009@example.com>, size=3266 dsync(user@example.com): Info: copy from Drafts: box=Drafts, uid=8346, msgid=<5237B6B4.2030203@example.com>, size=4201 dsync(user@example.com): Info: copy from Drafts: box=Drafts, uid=8347, msgid=<5237B888.7030807@example.com>, size=3371445 dsync(user@example.com): Info: copy from Drafts: box=Drafts, uid=8348, msgid=<5237C224.9010608@example.com>, size=3371745 dsync(user@example.com): Info: copy from Drafts: box=Drafts, uid=8349, msgid=<5237C350.5080608@example.com>, size=3371700 dsync(user@example.com): Info: copy from Drafts: box=Drafts, uid=8350, msgid=<5237C5EE.5030408@example.com>, size=3371619 dsync(user@example.com): Info: expunge: box=Drafts, uid=8209, msgid=< 4F387A25.5010900@example.com>, size=2954969
The interesting lines being uid=8209 and uid=8343; why would dsync both copy and then expunge the same message from the same mailbox?
I think "move" gets logged as copy+expunge. It probably just wanted to give a new UID to the message. Why it wanted to do that, I'm not sure .. One way to debug this would be to get rawlogs of the traffic between the two dsync brains, by running something like:
doveadm sync -1 -r raw.log -R 'doveadm -o imapc_user=foo -o imapc_password=bar -o mail=imapc: dsync-server'
The rawlog would then show why dsync does what it does. Also latest hg has some additional debug logging (doveadm -D), but it's still not in all the places so it might not be enough.