Ticket #3113 (new defect)

Opened 3 months ago

Last modified 3 months ago

reinstate $imap_home_namespace

Reported by: cout Owned by: mutt-dev
Priority: major Milestone:
Component: mutt Version: 1.5.18
Keywords: Cc:

Description

This variable appears to have been removed in hopes that $folder was sufficient for specifying the namespace. However, it appears that using $folder with large mailboxes causes mutt to run unusably slow (first symptom is seeing the message "sorting mailboxes" for an unusually long amount of time when mutt first starts up). I have verified that the slowness with $folder occurs at least as far back as mutt 1.5.9, though mutt is perfectly usable with $imap_home_namespace. I'm using UW imapd on the server side.

The easiest solution is to re-add $imap_home_namespace, though perhaps ideally it should be possible to use $folder without mutt running so slowly.

Change History

Changed 3 months ago by brendan

More likely $folder just needs to be changed, or your mailboxes lines do. $imap_home_namespace in its original incarnation wasn't more than a strange way to glue something onto $folder. A mutt -d2 trace should indicate why mutt has gotten slow...

Changed 3 months ago by cout

Tcpdump reveals that mutt is executing a STATUS command for each mailbox. I suppose that's actually the right behavior, and it's a problem with imapd that the STATUS command is so slow for large mailboxes. Ideally mutt should not block while waiting for the result of the STATUS command, but that's a separate issue.

As for why setting $imap_home_namespace doesn't cause the mailboxes to be checked, it is not clear to me.

Another difference between setting $imap_home_namespace and setting $folder is that INBOX shows up in the mailbox list with $imap_home_namespace, but not with $folder. I have mutt configured as follows:

set imap_user=pbrannan set spoolfile=imap://server/INBOX set folder=imap://server # set folder=imap://server/~/mail set imap_home_namespace=~/mail/ set mail_check=15 set timeout=120 set imap_servernoise=no set check_new=yes

The difference appears to be that $imap_home_namespace causes mutt to use the NAMESPACE command, which returns the inbox as a null string, whereas only using $folder causes mutt to skip the NAMESPACE command and only list the folders with the LIST command, which does not return the inbox.

Using $folder only, mutt also prepends "../" to the folder list (I can see from the server output that this is being prepended by mutt and not by the server), which is not accessible.

Note: See TracTickets for help on using tickets.