mailboxes.db invalid entries

Jan Kowalsky jankow at datenkollektiv.net
Thu Apr 21 19:28:52 EDT 2016


Hi all,

I have an unresolvable problem with one mailbox:

It got an entry inside the mailboxes.db and a spool directory - but I
can't change it or access it. I always got "invalid identifier" on cyradm.

Dumping the mailbox with ctl_mboxlist

example.com!user.kontakt.Calendar 0 (null) (null)

Converted the mailbox with cvt_cyrusdb /srv/imap/default/mailboxes.db
skiplist /tmp/mailboxes.txt flat

I saw this invalid entry in group entry -> there is a white space
between group: and group name:

example.com!user.kontakt.Calendar %(A %(kontakt at example.com
lrswipkxtecdan group: teamgroup lrs) I 0ba6aced567131fb P default V
1456854556 M 1461271748)

In the past I had once a similar problem. The reasons where also invalid
acl entries - (because of buggy ptloader - and the missing prove if the
aci subject even exists. Anyway...)

I tried to ways:

First I tried to dump the mailbox.db with ctl_mboxlist -d /tmp/mailboxes.txt

After deleting the wrong entry manually I wanted to reload the mailbox
again with ctl_mboxlist -u /tmp/mailboxes.txt. All operation with
stopped cyrus.

This gave me the error:

fatal error: failed to mmap /srv/imap/config/mailboxes.db file

As a second way I tried to convert mailbox with the cvt_cyrusdb to flat
format - edit the wrong entry and convert it back (with cyrus stopped).

No cyrus didn't start again:

In the logs:

Apr 22 00:53:35 mail master[19881]: setrlimit: Unable to set file
descriptors limit to -1: Operation not permitted
Apr 22 00:53:35 mail master[19881]: retrying with 4096 (current max)
Apr 22 00:53:35 mail ctl_cyrusdb[19882]: skiplist: clean shutdown file
missing, updating recovery stamp
Apr 22 00:53:35 mail ctl_cyrusdb[19882]: recovering cyrus databases
Apr 22 00:53:35 mail ctl_cyrusdb[19882]: converting
/srv/imap/config/mailboxes.db from skiplist to twoskip
Apr 22 00:53:35 mail ctl_cyrusdb[19882]: skiplist: recovered
/srv/imap/config/mailboxes.db (15000 records, 1962048 bytes) in 0 seconds
Apr 22 00:53:35 mail ctl_cyrusdb[19882]: skiplist: checkpointed
/srv/imap/config/mailboxes.db (15000 records, 1962048 bytes) in 0.143 sec
Apr 22 00:53:39 mail ctl_cyrusdb[19882]: IOERROR: mapping
/srv/imap/config/mailboxes.db.NEW.NEW file: Cannot allocate memory
Apr 22 00:53:39 mail master[19881]: process type:START name:recover
path:/usr/lib/cyrus-imapd/ctl_cyrusdb age:0.000s pid:19882 exited, status 75
Apr 22 00:53:39 mail master[19881]: can't run startup
Apr 22 00:53:39 mail master[19881]: exiting

As the cyrus database troubleshooting isn't documented very well, any
help is very appreciated.

What is the right way to correct database entries?
And one more question related: How to delete entries from database where
no spool directory exists for the mailbox?

Thanks and regards
Jan


More information about the Info-cyrus mailing list