Problems with \Noselect folders in cyrus-imap 3.4

Michael Menge <[email protected]>
Newsgroups gmane.mail.imap.cyrus
Message-ID <20240808155924.Horde.dtbtQM5ozafLf7qWqe-ROHa@webmail.uni-tuebingen.de>
Hi all,

after upgrading from cyrus imap 3.0 to 3.4.9 (3.4.8-patched) we discovered
some problems unexpected behavior connected to \Noselect mailboxes
(where sub-folders are created without existing direct parent).

Cyrus 3.4.x prevents deleting the parent if there are still subfolders,
but does NOT prevent you from creating sub-folders without parents,
and does NOT fix existing dangling folders by creating the parent folder.

We are still in the process to debug the problems, but wanted to share
the information that we have found to help others with the same problems
and to get information from others.

1. The "\Noselect" folders are not shown in LIST imap command with wildcards

> 1 LIST "" "*"
> * LIST (\HasNoChildren) "/" INBOX
> * LIST (\HasNoChildren) "/" drafts
> * LIST (\HasNoChildren) "/" sent
> * LIST (\HasNoChildren) "/" trash
> 1 OK Completed (0.000 secs 4 calls)
> 2 CREATE bla/fasel
> 2 OK [MAILBOXID (b5f15320-b028-48d7-b04d-1795f67f48df)] Completed
> 3 LIST "" "*"
> * LIST (\HasNoChildren) "/" INBOX
> * LIST (\HasNoChildren) "/" bla/fasel
> * LIST (\HasNoChildren) "/" drafts
> * LIST (\HasNoChildren) "/" sent
> * LIST (\HasNoChildren) "/" trash
> 3 OK Completed (0.000 secs 6 calls)
> 4 LIST "" "bla*"
> * LIST (\HasNoChildren) "/" bla/fasel
> 4 OK Completed (0.000 secs 2 calls)
> 5 LIST "" "bla"
> * LIST (\Noselect \HasChildren) "/" bla
> 5 OK Completed (0.000 secs 2 calls)
> 6 CREATE bla
> 6 OK [MAILBOXID (8fc0b0d4-639a-4432-a75e-a30506f72576)] Completed
> 7 LIST "" "bla*"
> * LIST (\HasChildren) "/" bla
> * LIST (\HasNoChildren) "/" bla/fasel
> 7 OK Completed (0.000 secs 2 calls)

    Cyrus-imapd 3.0.x did show these folders as "\Noselect"

2. mbexamine stops after hitting the \Noselect folder
    and does not process later folders

> # mbexamine -C /etc/imapd_be.conf user/zrstes8* | grep -A2 -e Exami
> Examining user/zrstes8... Mailbox Header Info:
>   Path to mailbox: /srv/cyrus-be/ssd-part/B/user/zrstes8
>  Mailbox ACL: zrstes8	lrswipkxtecda
> --
> Examining user/zrstes8/bla...

After creating the folder bla mbexamine does examine all folders

> # mbexamine -C /etc/imapd_be.conf user/zrstes8* | grep -A2 -e Exami
> Examining user/zrstes8... Mailbox Header Info:
>   Path to mailbox: /srv/cyrus-be/ssd-part/B/user/zrstes8
>   Mailbox ACL: zrstes8	lrswipkxtecda
> --
> Examining user/zrstes8/bla... Mailbox Header Info:
>   Path to mailbox: /srv/cyrus-be/ssd-part/B/user/zrstes8/bla
>   Mailbox ACL: zrstes8	lrswipkxtecda
> --
> Examining user/zrstes8/bla/fasel... Mailbox Header Info:
>   Path to mailbox: /srv/cyrus-be/ssd-part/B/user/zrstes8/bla/fasel
>   Mailbox ACL: zrstes8	lrswipkxtecda
> --
> Examining user/zrstes8/drafts... Mailbox Header Info:
>   Path to mailbox: /srv/cyrus-be/ssd-part/B/user/zrstes8/drafts
>   Mailbox ACL: zrstes8	lrswipkxtecda
> --
> Examining user/zrstes8/sent... Mailbox Header Info:
>   Path to mailbox: /srv/cyrus-be/ssd-part/B/user/zrstes8/sent
>   Mailbox ACL: zrstes8	lrswipkxtecda
> --
> Examining user/zrstes8/trash... Mailbox Header Info:
>   Path to mailbox: /srv/cyrus-be/ssd-part/B/user/zrstes8/trash
>   Mailbox ACL: zrstes8	lrswipkxtecda

3. SETMETADATA can lockup backend server

    our procedere for deleting users did reset the special use METADATA with
    'SETMETADATA "*" (/private/specialuse NIL)' (to mitigate
    https://github.com/cyrusimap/cyrus-imapd/issues/2599)

    this did lockup the backend server in 3 cases, and failed in some  
other cases.
    We do not know why the server did lockup in some cases and not in others.
    But i suspect that a lock was placed on a cyrus database file and was not
    released

4. We did try to create the missing mailboxes, but some were reserved  
on the mupdate master.
    I did try to clean up the reservations with "ctl_mboxlist -m -a"  
as the man page for ctl_mboxlist
    states that the "-m" option does synchronize the mailbox list. But  
it does not work.
    The mailboxes were still reserved. A have to manual DELETE the  
reservation on the mupdate master,
    which is a tedious task as I have not found an easy way to list  
all reserved mailbox names, not
    reserved by current user actions.

Kind Regards

    Michael Menge



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


------------------------------------------
Cyrus: Info
Permalink: https://cyrus.topicbox.com/groups/info/T72d2e03305c67431-Me32139d20eaf7f231986c21d
Delivery options: https://cyrus.topicbox.com/groups/info/subscription
smime.p7s (application/pkcs7-signature, 6.5 KB) - not displayed
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.