[Dovecot] dovecot.index.cache
Hopefully someone can explain/help me with the dovecot.index.cache file.
I am wanting to move a dovecot server (v1.0b7) onto a new box running the same version (1.0b7) of dovecot. To do this I rsync'd the maildir files to the new server but when I logged into the new machine through IMAP dovecot reported: IMAP(username): file index-mail.c: line 105 (index_mail_get_fixed_field): assertion failed: (buffer_get_used_size(buf) == data_size)
As soon as I delete the dovecot.index.cache file within the users mailbox this error goes away. Great, but that now I have some questions:
- Does the dovecot.index.cache file store/cache server specific settings? If not why did it cause this error on the new box with exactly the same dovecot version and dovecot.conf?
- What will happen if I delete the dovecot.index.cache file for all users? Will POP3 users have to re-download all their mail or will dovecot simply reference the dovecot.index file in the absence of the cache file?
If I've missed something on the wiki explaining all this please point me in the right direction. Any help would be greatly appreciated.
Gavin
On Sun, 2006-05-21 at 23:31 +1200, Fintec wrote:
Hopefully someone can explain/help me with the dovecot.index.cache file.
I am wanting to move a dovecot server (v1.0b7) onto a new box running the same version (1.0b7) of dovecot. To do this I rsync'd the maildir files to the new server but when I logged into the new machine through IMAP dovecot reported: IMAP(username): file index-mail.c: line 105 (index_mail_get_fixed_field): assertion failed: (buffer_get_used_size(buf) == data_size)
As soon as I delete the dovecot.index.cache file within the users mailbox this error goes away. Great, but that now I have some questions:
- Does the dovecot.index.cache file store/cache server specific settings? If not why did it cause this error on the new box with exactly the same dovecot version and dovecot.conf?
This error is caused by moving from 32bit machine to 64bit machine. The cache file format contains a couple of fields which depend on if Dovecot was compiled as 32bit or 64bit binary. This is a bug and I'll fix it at some point (fix being to delete the cache file)..
- What will happen if I delete the dovecot.index.cache file for all users?
Nothing. Dovecot might run slightly slower until its contents are created back from the actual mail files. Cache file contains nothing that isn't regenerated automatically when it's not found in there.
Thanks for the explanation Timo, much appreciated. As you stated we were moving mailbox's from a 32bit machine to a 64bit.
Thanks again, Gavin
On Tue, 2006-05-30 at 16:01 +0300, Timo Sirainen wrote:
On Sun, 2006-05-21 at 23:31 +1200, Fintec wrote:
Hopefully someone can explain/help me with the dovecot.index.cache file.
I am wanting to move a dovecot server (v1.0b7) onto a new box running the same version (1.0b7) of dovecot. To do this I rsync'd the maildir files to the new server but when I logged into the new machine through IMAP dovecot reported: IMAP(username): file index-mail.c: line 105 (index_mail_get_fixed_field): assertion failed: (buffer_get_used_size(buf) == data_size)
As soon as I delete the dovecot.index.cache file within the users mailbox this error goes away. Great, but that now I have some questions:
- Does the dovecot.index.cache file store/cache server specific settings? If not why did it cause this error on the new box with exactly the same dovecot version and dovecot.conf?
This error is caused by moving from 32bit machine to 64bit machine. The cache file format contains a couple of fields which depend on if Dovecot was compiled as 32bit or 64bit binary. This is a bug and I'll fix it at some point (fix being to delete the cache file)..
- What will happen if I delete the dovecot.index.cache file for all users?
Nothing. Dovecot might run slightly slower until its contents are created back from the actual mail files. Cache file contains nothing that isn't regenerated automatically when it's not found in there.
On Tue, May 30, 2006 at 04:01:03PM +0300, Timo Sirainen wrote:
This error is caused by moving from 32bit machine to 64bit machine. The cache file format contains a couple of fields which depend on if Dovecot was compiled as 32bit or 64bit binary. This is a bug and I'll fix it at some point (fix being to delete the cache file)..
.. or always use the same size fields?
wouldn't that be less destructive than invalidating all the indexes?
grant.
On Wed, 2006-05-31 at 12:50 +1000, grant beattie wrote:
On Tue, May 30, 2006 at 04:01:03PM +0300, Timo Sirainen wrote:
This error is caused by moving from 32bit machine to 64bit machine. The cache file format contains a couple of fields which depend on if Dovecot was compiled as 32bit or 64bit binary. This is a bug and I'll fix it at some point (fix being to delete the cache file)..
.. or always use the same size fields?
wouldn't that be less destructive than invalidating all the indexes?
It usually does use the same size fields. I think only time_t is currently used as-is, which is the problem. Maybe I should just assume that Dovecot won't be used in 100 years and just keep it 32bit :)
participants (3)
-
Fintec
-
grant beattie
-
Timo Sirainen