Closed Bug 497873 Opened 16 years ago Closed 14 years ago

Problem with IMAP folders with missing intermediate folders

Categories

(MailNews Core :: Networking: IMAP, defect)

1.9.1 Branch
x86
All
defect
Not set
major

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: martin, Unassigned)

Details

(Whiteboard: [closeme 2011-09-15][has protocol logs])

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729) Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b3pre) Gecko/20090223 Thunderbird/3.0b2 Thunderbird seems to have real problems dealing with IMAP folders where intermediates are missing. Usually as a result of a backup/archiving tool. e.g. INBOX -archive [doesn't exist] --2008 [doesn't exist] ---Jan [exists] In Maildir this would look like . .archive.2008.Jan The behaviour in thunderbird is really strange. Sometimes the folders show up in the subscribe list, sometimes they don't, sometimes you can expand them, sometimes you can't. Reproducible: Always Steps to Reproduce: Have an imap setup with folders that don't have intermediates. Goto account -> subscribe See the folders not turn up.. or only half turn up, or not accessible. Use a different IMAP client to subscribe to the folders then go back into thunderbird and see them correctly show up. If I use a different IMAP client (e.g. the ruby IMAP classes) I can easily list those folders, see they exist and subscribe to them. Only once I'm subscribed do they show up in thunderbird! Ruby Correctly Lists Folders: #!/usr/bin/ruby require 'net/imap' imap = Net::IMAP.new('localhost', 993, true) imap.authenticate('LOGIN', 'user', 'pass') folders = ['INBOX'] imap.list('INBOX', '*').each do |folder| puts "#{folder.name} : #{result}" end
I didn't fully sanitize the script I attached; it was taken out of a larger script. The following should now work directly. Corrected script: #!/usr/bin/ruby require 'net/imap' imap = Net::IMAP.new('localhost', 993, true) imap.authenticate('LOGIN', 'user', 'pass') imap.list('INBOX', '*').each do |folder| puts "#{folder.name}" end
Martin can you follow the instructions at https://wiki.mozilla.org/MailNews:Logging and log imap as a protocol so we can see what's happening when Tb is talking to the server ?
Component: General → Networking: IMAP
Product: Thunderbird → MailNews Core
QA Contact: general → networking.imap
Version: unspecified → 1.9.1 Branch
looking into the logging now. I've been digging and it seems this may be related to bugs #291973 & #284312 neither of which seem to have ever been closed. The folders in question are flagged as \noselect and \haschildren in IMAP. It's very odd.. even subscribing with a differnet client doesn't always work.. the folders show up in the subscribe list, but not in the main folder navigator. Occasionally (rarely) when I expand on folder in the subscribe list it magically appears in the main folder navigator... most of the time though it doesn't. I'll get back to you with the logs.
Used a much simpler account and got the log from where the subscribe dialog is displayed. Looking at the log, it correctly learns from IMAP that the folder 'archives.sent.2008' exists and \haschildren but for some reason it doesn't continue exploring and find the actual mailbox 'archives.sent.2008.09-Sep', and therefore doesn't allow me to subscribe to it. ---------------------------------------------------- 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 14 OK IDLE completed 3124[350c900]: 3e2f000:localhost:S-INBOX:ProcessCurrentURL: entering 3124[350c900]: 3e2f000:localhost:S-INBOX:ProcessCurrentURL:imap://postmaster@localhost:993/select%3E.INBOX: = currentUrl 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 15 noop 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 15 OK NOOP completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 16 getquotaroot "INBOX" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=28 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * QUOTAROOT "INBOX" "ROOT" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=16 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * QUOTA "ROOT" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=24 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 16 OK GETQUOTAROOT Ok. 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 17 UID fetch 836:* (FLAGS) 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=24 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 17 OK FETCH completed. 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 18 IDLE 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: + entering idle mode 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: DONE 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 18 OK IDLE completed 3124[350c900]: 3e2f000:localhost:S-INBOX:ProcessCurrentURL: entering 3124[350c900]: 3e2f000:localhost:S-INBOX:ProcessCurrentURL:imap://postmaster@localhost:993/discoverallandsubscribedboxes: = currentUrl 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 19 lsub "" "INBOX.*" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=42 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LSUB (\HasNoChildren) "." "INBOX.Sent" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=44 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LSUB (\HasNoChildren) "." "INBOX.Drafts" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=43 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LSUB (\HasNoChildren) "." "INBOX.Trash" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 19 OK LSUB completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 20 list "" "INBOX.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=42 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "." "INBOX.Sent" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=43 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "." "INBOX.Trash" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=44 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "." "INBOX.zzSpam" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=44 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "." "INBOX.Drafts" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=54 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\Noselect \HasChildren) "." "INBOX.archives" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 20 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 21 list "" "INBOX.%.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=59 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\Noselect \HasChildren) "." "INBOX.archives.sent" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 21 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 22 lsub "" "#shared.*" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 22 OK LSUB completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 23 list "" "#shared.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 23 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 24 list "" "#shared.%.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 24 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 25 lsub "" "shared.*" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 25 OK LSUB completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 26 list "" "shared.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 26 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 27 list "" "shared.%.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 27 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 28 IDLE 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: + entering idle mode 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: DONE 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 28 OK IDLE completed 3124[350c900]: 3e2f000:localhost:S-INBOX:ProcessCurrentURL: entering 3124[350c900]: 3e2f000:localhost:S-INBOX:ProcessCurrentURL:imap://postmaster@localhost:993/discoverchildren%3E.INBOX: = currentUrl 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 29 list "" "INBOX.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=42 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "." "INBOX.Sent" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=43 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "." "INBOX.Trash" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=44 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "." "INBOX.zzSpam" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=44 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\HasNoChildren) "." "INBOX.Drafts" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=54 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\Noselect \HasChildren) "." "INBOX.archives" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 29 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 30 list "" "INBOX.%.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=59 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\Noselect \HasChildren) "." "INBOX.archives.sent" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 30 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 31 IDLE 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: + entering idle mode 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: DONE 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 31 OK IDLE completed 3124[350c900]: 3e2f000:localhost:S-INBOX:ProcessCurrentURL: entering 3124[350c900]: 3e2f000:localhost:S-INBOX:ProcessCurrentURL:imap://postmaster@localhost:993/discoverchildren%3E.INBOX/archives: = currentUrl 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 32 list "" "INBOX.archives.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=59 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\Noselect \HasChildren) "." "INBOX.archives.sent" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 32 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 33 list "" "INBOX.archives.%.%" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=64 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: * LIST (\Noselect \HasChildren) "." "INBOX.archives.sent.2008" 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: 33 OK LIST completed 3124[350c900]: 3e2f000:localhost:S-INBOX:SendData: 34 IDLE 3124[350c900]: ReadNextLine [stream=3dd9e28 nb=22 needmore=0] 3124[350c900]: 3e2f000:localhost:S-INBOX:CreateNewLineFromSocket: + entering idle mode 3124[350c900]: 3e2f000:localhost:S-INBOX:TellThreadToDie: close socket connection 3124[350c900]: ImapThreadMainLoop leaving [this=3e2f000] 3088[172a980]: 3545000:localhost:S-INBOX:TellThreadToDie: close socket connection 3090[172a980]: ImapThreadMainLoop leaving [this=3545000]
Whiteboard: [has protocol log]
> SendData: 30 list "" "INBOX.%.%" > CreateNewLineFromSocket: * LIST (\Noselect \HasChildren) "." "INBOX.archives.sent" > CreateNewLineFromSocket: 30 OK LIST completed If folder of INBOX.archives.sent.2008, Tb had some problems; - Tb doesn't issue LIST INBOX.archives.sent.%, LSUB INBOX.archives.sent.%, so unable to know sufolders under it. - Even if command is issued, subscription list is not update correctly (e.g. sent is not expanded), so unable to subscribe 2008 under sent. - Even if subscribed, it won't appear at folder pane. (e.g. sent can't be expanded, then no way to view 2008) Many of this kind of problems are already resolved by latest nightly builds. Martin Gill(bug opener), can you reproduce your problem with newest nightly? > http://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-comm-1.9.1/ > http://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-comm-1.9.1-l10n/ > Download win32.zip build. You can test by UNZIP only.
We fixed a bunch of these in early bird https://ftp.mozilla.org/pub/mozilla.org/thunderbird/nightly/latest-earlybird/ can you give it a try and let us know ?
Whiteboard: [has protocol log] → [closeme 2011-09-15][has protocol logs]
RESOLVED INCOMPLETE due to a lack of response to previous question. If you feel this change is in error, please respond to this bug with your reasons why.
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.