Re: Consistency check on all db

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,


Quoting Albert Shih <Albert.Shih@xxxxxxxx>:

Hi everyone.

One user with I don't know what, and I don't know how was able to create a
recursive tree of mailbox:

  user.toto.mailbox1.mailbox2.mailbox1.mailbox2. ...etc
  user.toto.mailbox1.mailbox3.mailbox1.mailbox3. etc..
  etc..

I was able to manually destroy almost all the mailboxes.....but few remain
undeleteable...meaning I cannot see them with


did you see an error message? Or are there related errors in the logs?

  cyradm + lm user.toto.*

so for the user it's ok.

But if I do a

  ctl_mboxlist -d

what do you see here. If it has "(null)" in the output it is a tombstone record, afaik it was added for syncronisation/backup to indicate that a mailbox did exist
but was removed "recently"

There was an issue to create dokumentation for this feature
but it is still open https://github.com/cyrusimap/cyrus-imapd/issues/2265



If it is under DELETED.user.toto it is there to allow admins to restore deleted mailboxes
see "delete_mode:" in man imapd.conf



I can definitively see them.

I was also unable to remove those mailboxes by

  ctl_mboxlist -d > list.json
  vi list.json  + remove those mailboxes
  ctl_mboxlist -u < list.json


This was stupid. Sorry that i am blunt but any mailbox created/renamed/deleted acls changed between dumping the mboxlist and updating the mboxlist will most likely be lost and
create an inconsistency between mailboxes.db and the filesystem

With the uuid Mailbox location, reconstruct might be able to fix some of
the problems but i don't use uuid mailbox locations jet, so i am not sure.

At the end I do something mark «as not to do» such as

  systemctl stop cyrus-imapd
  ctl_mboxlist -d > list.json
  vi list.json + remove those mailboxes
  rm -rf MAILBOX/uuid/*/*/uniqueid of those mailboxes
  ctl_mboxlist -u < list.json -f /tmp/mailboxes.db
  mv /tmp/mailboxes.db /var/lib/cyrus
  chown cyrus:mail /var/lib/cyrus/mailboxes.db
  systemctl start cyrus-imapd


This is the safer way, but still if the problem is not visible/critical
to the user, so that there is no need to rush, asking on the list
for advise is the way to go, espacially if it is marked as "not to do"

now I don't see them anymore....piouff...

But I'm now worry I introduce some inconsistency somewhere.


for the future some general tips.

- Stoping Cyrus before you change/remove files.
- Keeping a backup of files you change (e.g. mailboxes.db)
- Moving the Files/Directories  outside of the cyrus directories instead of
  removing them with "rm"
  You can delete them later if you have confirmed that there is no problem

Is they are any tool I can check every db and their relations to check
everything is ok ?

check manpage for reconstruct.





--
--------------------------------------------------------------------------------
Michael Menge                          Tel.: (49) 7071 / 29-70316
Universität Tübingen                   Fax.: (49) 7071 / 29-5912
Zentrum für Datenverarbeitung mail: michael.menge@xxxxxxxxxxxxxxxxxxxx
Wächterstraße 76
72074 Tübingen

Attachment: smime.p7s
Description: S/MIME-Signatur


------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/Tb03cd1a701e8d6d4-Mb81a6309289ed7c59adc037b
Delivery options: https://cyrus.topicbox.com/groups/info/subscription

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]
  Powered by Linux