You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
current implementation to rebuild index is based on sdbox. It needs to be rewritten to list all objects (mail) for given mailbox from rados and add each file to rebuild index again.
Note:
calling doveadm force-resync on valid index, will do nothing. Current behavior of force resync is to create backup of original index and log files. rebuild index is empty after force-resync.
attached you find t1's corrupt mailbox (unable to copy more than one mail from inbox to another folder)
The following function needs to be modified.
rbox-sync.cpp
static int rbox_sync_index_rebuild_dir(struct index_rebuild_context *ctx, const char *path, bool primary).
(based on sdbox-sync.cpp) sdbox_sync_index_rebuild....
added support to repair corrupt index.
- all rados mail objects have xattr M = mailbox guid
- and mails uid
- mailbox guid to restore is read from index header.
- using rados osd filter all mailobjects with mailbox guid and their
xattributes are read from rados.
- for each mail object a lookup with uid is done in cache and log to
restore index entry
extended header (oid and guid) are add to index entry
current implementation to rebuild index is based on sdbox. It needs to be rewritten to list all objects (mail) for given mailbox from rados and add each file to rebuild index again.
Note:
The following function needs to be modified.
rbox-sync.cpp
static int rbox_sync_index_rebuild_dir(struct index_rebuild_context *ctx, const char *path, bool primary).
(based on sdbox-sync.cpp) sdbox_sync_index_rebuild....
t1_mailbox.tar.gz
The text was updated successfully, but these errors were encountered: