I'm trying to migrate an old Cyrus 2.5 server to Dovecot 2.3.19 using
doveadm backup -R, which works for all folders but the INBOX itself,
which always stays empty.
The Cyrus side uses altnamespace:no and unixhierarchysep:no, it's used
as imapc: remote in doveadm backup -R with imapc_list_prefix=INBOX
Dovecot uses the following namespace to migrate into:
namespace inboxes {
? inbox = yes
? location ? mailbox Sent {
??? auto = subscribe
??? special_use = \Sent
? }
? ### some more folders omitted ###
? prefix = INBOX/
? separator = /
? subscriptions = no
}
I use the following command line for the migration:
doveadm -o imapc_features='rfc822.size fetch-headers' -o
mail_prefetch_count=20 -o namespace/subs/location=mbox:/var/dovecot/subs
-o imapc_user='someuser' -o imapc_password='secret' -o
imapc_host=<cyrus-ip> -o imapc_list_prefix=INBOX -D backup -f -n INBOX/
-R -u someuser at somedomain imapc:
The debug output contains the following lines:
Nov 02 10:16:01 dsync(someuser at somedomain): Debug: brain S: Namespace
INBOX/ has location imapc:
Nov 02 10:16:01 dsync(someuser at somedomain): Debug: brain M: Local
mailbox tree: INBOX guid=d8d5a3122bce5f63ef9101001ebfc848
uid_validity=1667223083 uid_next=1 subs=no last_change=0 last_subs=0
Nov 02 10:16:01 dsync(someuser at somedomain): Debug: brain S: Local
mailbox tree: INBOX guid=c92f64f79f0d1ed01e6d5b314f04886c
uid_validity=1577952633 uid_next=32691 subs=no last_change=0 last_subs=0
Nov 02 10:16:28 dsync(someuser at somedomain): Warning: Mailbox changes
caused a desync. You may want to run dsync again: Remote lost mailbox
GUID c92f64f79f0d1ed01e6d5b314f04886c (maybe it was just deleted?)
The Cyrus server is solely used for the migration, no access from
anywhere else!
doveadm mailbox status -u someuser at somedomain all INBOX reports:
INBOX messages=0 recent=0 uidnext=1 uidvalidity=1667223083 unseen=0
highestmodseq=1 vsize=0 guid=d8d5a3122bce5f63ef9101001ebfc848
firstsaved=never
As all other folders seem ok, I blamed the failure with the INBOX on the
imapc_list_prefix and altnamespace:no and tried, adding the INBOX
content with an other doveadm sync run:
doveadm -o imapc_features='rfc822.size fetch-headers' -o
mail_prefetch_count=20 -o namespace/subs/location=mbox:/var/dovecot/subs
-o imapc_user='someuser' -o imapc_password='secret' -o
imapc_host=<cyrus-ip> -D sync -1 -f -m INBOX -n INBOX/ -R -u
someuser at somedomain imapc:
That gives the following output:
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain S: Namespace
INBOX/ has location imapc:
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain M: Local
mailbox tree: INBOX guid=d8d5a3122bce5f63ef9101001ebfc848
uid_validity=1667223083 uid_next=1 subs=no last_change=0 last_subs=0
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain S: Local
mailbox tree: INBOX guid=c92f64f79f0d1ed01e6d5b314f04886c
uid_validity=1577952633 uid_next=32691 subs=no last_change=0 last_subs=0
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain M: Remote
mailbox tree: INBOX guid=c92f64f79f0d1ed01e6d5b314f04886c
uid_validity=1577952633 uid_next=32691 subs=no last_change=0 last_subs=0
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain S: Remote
mailbox tree: INBOX guid=d8d5a3122bce5f63ef9101001ebfc848
uid_validity=1667223083 uid_next=1 subs=no last_change=0 last_subs=0
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain M: Mailbox
INBOX: local=d8d5a3122bce5f63ef9101001ebfc848/0/1,
remote=c92f64f79f0d1ed01e6d5b314f04886c/0/1: GUIDs conflict - will be
merged later
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: Mailbox INBOX:
Mailbox opened
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain M: Changing
mailbox INBOX GUID d8d5a3122bce5f63ef9101001ebfc848 ->
c92f64f79f0d1ed01e6d5b314f04886c
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: dict(file): Waiting
for dict to finish pending operations
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain S: Remote
mailbox tree deletion: guid=c8882c0029ce5f63a9aa0000ca9feb0b
type=mailbox timestamp=1667223081 name= local update=not found
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain S: Mailbox
INBOX: local=c92f64f79f0d1ed01e6d5b314f04886c/0/1,
remote=d8d5a3122bce5f63ef9101001ebfc848/0/1: GUIDs conflict - will be
merged later
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: Mailbox INBOX:
Mailbox opened
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain S: Ignore
nonexistent mailbox GUID c92f64f79f0d1ed01e6d5b314f04886c with -1 sync
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain S: We don't
have mailbox c92f64f79f0d1ed01e6d5b314f04886c
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: brain M: Ignoring
missing remote box GUID c92f64f79f0d1ed01e6d5b314f04886c
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: dict(file): Waiting
for dict to finish pending operations
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: dict(file): dict
destroyed
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: dict(file): Waiting
for dict to finish pending operations
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: dict(file): dict
destroyed
Nov 02 10:55:45 dsync(someuser at somedomain): Debug:
imapc(10.44.88.3:143): Disconnected
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: User session is finished
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: dict(file): dict
destroyed
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: dict(file): Waiting
for dict to finish pending operations
Nov 02 10:55:45 dsync(someuser at somedomain): Debug: dict(file): dict
destroyed
Nov 02 10:55:45 doveadm(40708): Debug: auth-master: conn
unix:/run/dovecot/auth-userdb (pid=1,uid=0): Disconnected: Connection
closed (fd=9)
doveadm mailbox status -u someuser at somedomain all INBOX
INBOX messages=0 recent=0 uidnext=1 uidvalidity=1667223083 unseen=0
highestmodseq=1 vsize=0 guid=c92f64f79f0d1ed01e6d5b314f04886c
firstsaved=never
The interesting part is that INBOX somehow seems to have two different
GUIDs, depending on how I sync it (compare the two doveadm mailbox
status outputs).
In a tcpdump of the IMAP trafic I can see a STATUS "INBOX" (UIDNEXT
UIDVALIDITY) but no EXAMINE "INBOX" or something else I would expect
from the sync.
I can provide the full output of doveadm backup/sync and a pcap of the
IMAP trafic, but not to the public list.
Any idea what's wrong with the sync of the INBOX or other suggestions /
imapc parameters to use?
Ralf
--
Ralf Becker
EGroupware GmbH [www.egroupware.org]
Handelsregister HRB Kaiserslautern 3587
Gesch?ftsf?hrer Birgit und Ralf Becker
Leibnizstr. 17, 67663 Kaiserslautern, Germany
Telefon +49 631 31657-0