Joćo Assad wrote:
Carol Tardif wrote:

Hello,

We are using Cyrus-2.2.10 in a Murder environnement with two
backend +200K mailboxes each. Since our upgrade from Red Hat 7.3
to RHEL 3.0 AS we get this error:

May 19 13:56:07 mupdate mupdate[26023]: DBERROR: skiplist recovery /var/imap/mailboxes.db: 45DF894 should be ADD or DELETE
May 19 13:56:07 mupdate mupdate[26023]: DBERROR: error updating database user.test1234.sbb: cyrusdb error


check if you can find an IOERROR before this DBERROR, could be anywhere from 1 hour before it to days before it.
It should be an IOERROR complaining that cyrus cant mmap the mailboxes file.

On the mupdate server I don't have any IOERROR. But on backends I have rare lines like this:

May 18 00:49:53 backend2 imap[30938]: IOERROR: reading message: unexpected end 
of file



Since then our backends seems to have trouble to update their mailbox list.
Because some users can't see some of their mailbox.
With a ctl_mboxlist -d -f /var/imap/mailboxes we see the mailbox on the backend
but not on the mupdate with the same command.


First we restarted cyrus on both backend to make the backend execute the command
ctl_mboxlist -m. I'm not sure about running the command while cyrus is running.
Then everything is ok. But after some user creation the problem is back.


I don't wan't to delete the mupdate mailbox.db because I know it's
gonna take aroung 8 hours.

Is it normal while cyrus on backends is running that when we do a
ctl_mboxlist -mw we get output? Aren't the backend supposed the be always up
to date?


First I would like to correct the DBERROR, then I would like to understand why
this append.


If you dont have a healthy backup of your master mailboxdb, you will have to stop cyrus master, delete the mailboxes file, start cyrus master and run ctl_mboxlist -m on the backends to resync everything.

I belive you are having the same problem I had some time ago, Fedora/RHEL mmap seems to be broken somehow. I have a fix you can use, but only if you are really having the IOERROR I asked for you to check.

One thing I would like to know is instead of synchronising everything can I:

        1- delete mailboxe.db on mupdate.

        2- do "ctl_mboxlist -d -f /var/imap/mailboxes.db > mailbox_backend1.txt"
          on both backends

        3- Then on the mupdate import mailbox via:
          ctl_mboxlist -u -f /var/imap/mailboxes.db < mailbox_backend1.txt
          ctl_mboxlist -u -f /var/imap/mailboxes.db < mailbox_backend2.txt

Is this gonna work? Or I am forced to have a big downtime waiting for "ctl_mboxlist 
-m"
on both backends.


One more thing on my frontends I have lines like this:

May 19 15:30:41 frontend3 imap[11454]: kick_mupdate: can't connect to target: 
Connection refused
May 19 15:30:41 frontend3 mupdate[1503]: accepted connection
May 19 15:31:19 frontend3 imaps[11783]: kick_mupdate: can't connect to target: 
Connection refused


Thanks!

--

Carol Tardif
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html

Reply via email to