Re: Consistency check on all db

Albert Shih <[email protected]>
Newsgroups gmane.mail.imap.cyrus
Message-ID <[email protected]>
Le 15/11/2024 à 14:57:01+0100, Michael Menge a écrit

Hi, 

> > 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?

No error message in normal situation, but when I launch squatter they going
to tell me they are some maiboxes issues
 
> >   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,

no, no null at all. 

> afaik it was added for syncronisation/backup to indicate that a mailbox did
> exist
> but was removed "recently"

No I remove the mailboxes ~one mounth ago. And I don't use sync_repl since
we got a lot a issue with that. We just use zfs/send/recv

> 
> 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

Yes I know the delete_mode, it's why (even at the time it's mostly for mail
not mailboxes) I switch to cyrus ;-) ;-)

> >   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

No worries, I prefer that than something incomprehensible 

> between dumping the mboxlist and updating the mboxlist will most likely be
> lost and
> create an inconsistency between mailboxes.db and the filesystem

Ok. 

> 
> 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

Ok thanks. 

> 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"

Well, it's on a pre-production server, who going to production end of next
week, so I still go enough time to resynchronize everything. 


> > 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

Yeah...I did that, the list of the commands are just for explanation, it'
s not copy/paste. 

The server is a lxc running on zfs, so I even stop the lxc, take a zfs
snapshot and restart the lxc just in case I broke so much I was unable to
restart cyrus. 

I eventually find out the «real» issue, or maybe I should say I'm guessing
it's the real issue. 

In the list dump by ctl_info every line are unique but...those problematic
mailboxes who show 2 times each with exactly the same infos. 

Here a example (I change the name or private infos): 

"DELETED.user.toto.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.2 - THINGS.E": {"name": "DELETED.user.toto.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.2 - THINGS.E", "mtime": "1731619948", "uidvalidity": "1726619337", "createdmodseq": "7876", "foldermodseq": "18587", "mbtype": "e", "partition": "default", "acl": {"toto": "lrswipkxtecdan", "cyrus": "xc"}, "uniqueid": "ylb11hedkbo084glacjmo5bt", "name_history": []},

"DELETED.user.toto.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.2 - THINGS.E": {"name": "DELETED.user.toto.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.divers.IR - MIRS.2 - THINGS.E", "mtime": "1727701437", "uidvalidity": "1726619337", "createdmodseq": "7876", "foldermodseq": "18587", "mbtype": "e", "partition": "default", "acl": {"toto": "lrswipkxtecdan", "cyrus": "xc"}, "uniqueid": "ylb11hedkbo084glacjmo5bt", "name_history": []},

I've no idea how and why. Maybe because cyrus cut the name of the mailboxes
at some lenght and because it's so long the cut part is identical. 

> > Is they are any tool I can check every db and their relations to check
> > everything is ok ?
> 
> check manpage for reconstruct.
> 

I will do that. 

Thanks for the help and tips. 

Regards.


-- 
Albert SHIH 🦫 🐸
France
Heure locale/Local time:
ven. 15 nov. 2024 15:03:02 CET

------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/Tb03cd1a701e8d6d4-Mf8cedec07d32fb77714fbe24
Delivery options: https://cyrus.topicbox.com/groups/info/subscription
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.