Seen database issue

Simon Matter simon.matter at invoca.ch
Wed Jun 18 02:23:00 EDT 2008


>
>> Moving the /var/spool/imap directories, and /var/lib/user/{}.seen
>> files to the new server and reconstructing works fine except that all
>> the
>> mail shows up as "not read" on the new sever.
>
> The seen state is keyed on the mailbox "uniqueid", so if that changes, the
> seen state becomes invalid.
>
> The mailbox uniqueid is based on the mailbox name + the uidvalidity value,
> which is itself based on the time the mailbox is created, or recreated due
> to a reconstruct.
>
> Now I thought reconstruct should preserve the mailbox uniqueid in most
> cases, but it's possible it's not if you're not copying all the data
> correctly.
>
> 1. Why are you reconstructing the mailboxes. If you copy all the right
> data,
> it should be fine without a reconstruct
> 2. How are you copying the data? Recommend using rsync -az which will
> preserve all the attributes + timestamps

I recommend adding -H here when using single instance store.

> 3. Are you using split data/meta data? If so, are you copying the metadata
> as well?
> 4. What flags are you passing to reconstruct?

I can only second what Rob says. I have migrated several servers ranging
from RedHat 7.2 to RHEL5 and doing constant Cyrus-IMAPd updates on them
since the 2.1 days and never lost seen. Looks like copying only part of
metadata is going to get you in trouble.

A word about database rebuilds the Cyrus-IMAPd starts. There are two things:
1) Skiplist DB's are recovered whenever a DB is opened the first time
after Cyrus-IMAPd was started.
2) My RPM's (Invoca) care to convert all DB's to the correct version on
startup and also convert all BDB's to Skiplist on shutdown to prevent
problems when migrating to a server with other BDB version. You seem to
use the cyrus-imapd RPMs shipped with RHEL5 which are based on a old
version of  the Invoca RPMs.

Simon



More information about the Info-cyrus mailing list