[Dovecot] Best way to change index location on mdbox
Patrick Westenberg
pw at wk-serv.de
Sat May 19 00:44:00 EEST 2012
Hi,
right now my index directory is part of the users home directory:
mail_home = /var/mail/%d/%n
mail_location = mdbox:~/mdbox
I want the indexes to be stored in a different location:
mail_home = /var/mail/%d/%n
mail_location = mdbox:~/mdbox:INDEX=/var/indexes/%d/%n
If I just switch this setting and reload the configuration, no e-mails
are shown to the user.
After restoring the whole maildir I deleted all dovecot.index.*-files
from that user and starting dovecot with the new index directory
setting, I got the following error after connecting.
I expected the index files to be regenerated but I got an error:
May 18 23:11:12 imap(test at example.com): Panic: file mail-storage.c: line
787 (mailbox_check_mismatching_separators): assertion fail
ed: (strncmp(vname, ns->prefix, ns->prefix_len-1) == 0)
May 18 23:11:12 imap(test at example.com): Error: Raw backtrace:
/usr/local/lib/dovecot/libdovecot.so.0(+0x4475a) [0x7f993f60875a] ->
/usr/local/lib/dovecot/libdovecot.so.0(+0x447a6) [0x7f993f6087a6] ->
/usr/local/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f993f5df5bf] -
> /usr/local/lib/dovecot/libdovecot-storage.so.0(mailbox_open_stream+0)
[0x7f993f8ccca0] -> /usr/local/lib/dovecot/libdovecot-storage.so.
0(mailbox_open+0xf) [0x7f993f8cccbf] ->
/usr/local/lib/dovecot/libdovecot-storage.so.0(mdbox_storage_rebuild_in_context+0xb2b)
[0x7f993f8
8eeab] ->
/usr/local/lib/dovecot/libdovecot-storage.so.0(mdbox_sync_begin+0x7ec)
[0x7f993f88ce7c] -> /usr/local/lib/dovecot/libdovecot-st
orage.so.0(mdbox_sync+0x46) [0x7f993f88cee6] ->
/usr/local/lib/dovecot/libdovecot-storage.so.0(mdbox_storage_sync_init+0x87)
[0x7f993f88c
fc7] ->
/usr/local/lib/dovecot/libdovecot-storage.so.0(mailbox_sync_init+0x31)
[0x7f993f8cb851] -> /usr/local/lib/dovecot/libdovecot-stor
age.so.0(mailbox_sync+0x27) [0x7f993f8cc387] ->
/usr/local/lib/dovecot/libdovecot-storage.so.0(index_storage_get_status+0x28f)
[0x7f993f8
ef41f] -> dovecot/imap(imap_status_get+0x7a) [0x41756a] ->
dovecot/imap(cmd_status+0x14f) [0x40e85f] ->
dovecot/imap(command_exec+0x3d) [
0x41158d] -> dovecot/imap() [0x41050e] -> dovecot/imap() [0x4105ed] ->
dovecot/imap(client_handle_input+0x135) [0x410815] -> dovecot/imap
(client_input+0x5f) [0x41113f] ->
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_call_io+0x36)
[0x7f993f6148f6] -> /usr/local/lib/dovecot
/libdovecot.so.0(io_loop_handler_run+0x9f) [0x7f993f61592f] ->
/usr/local/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) [0x7f993f614898]
-> /usr/local/lib/dovecot/libdovecot.so.0(master_service_run+0x13)
[0x7f993f601023] -> dovecot/imap(main+0x2a4) [0x419364] -> /lib/libc.s
o.6(__libc_start_main+0xfd) [0x7f993f280c8d] -> dovecot/imap() [0x408e89]
How can I change the index directory without losing mails?
Patrick
More information about the dovecot
mailing list