32-bit to 64-bit migration seen flags
Wesley Craig
wes at umich.edu
Mon Jan 12 11:20:07 EST 2009
On 12 Jan 2009, at 04:26, ram wrote:
> On Fri, 2009-01-09 at 11:53 -0500, Wesley Craig wrote:
>> How are you copying?
>
> scp-ing the files
Well, the data in the seen files is stored by unique ID of the
mailbox -- which is stored as a string. The data stored is the "seen
version" (which has been 1 for a long time), the last read time
(time_t cast to int), last uid (int), last change time (time_t cast
to int), and seen uids (a string created earlier from unsigned long).
I suppose it's possible that the casts of time_t to int are
corrupting your results. What value is time_t on your system? It
absolutely true that casting time_t to int is *wrong*, and should be
handled in some other way, e.g., TIME_T_FMT. Of course, that has
(different) implications for migrating between platforms as well.
You might try dumping the data with cyr_dbtool on yor 32-bit system
and reloading it with cyr_dbtool on your 64-bit system. I doubt that
will help, but you never know. I think a much more likely scenario
is that however you're copying the mailboxes is causing the unique ID
of the mailboxes to be re-assigned. Since all of the data in the
seen DB is keyed on the unique ID of the mailbox, if the unique ID of
the mailbox changes, all of the seen data is effectively lost.
Probably a uid validity change would have a similar effect.
:wes
>> On 09 Jan 2009, at 01:47, ram wrote:
>>> I am migrating mailboxes from a 32 bit cyrus (cyrus-2.3.7) to a
>>> 64 bit
>>> cyrus (2.3.13) server
>>>
>>> When I copy the mailbox seen flags(skiplist) from the 32 bit
>>> server to
>>> the 64 bit servers it does not work. All the mails are flagged as
>>> unseen
>>> on the new server
>>>
>>> Is there a way I can migrate the seen flags
More information about the Info-cyrus
mailing list