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)
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
Reporter | ||
Comment 1•16 years ago
|
||
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
Comment 2•16 years ago
|
||
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
Reporter | ||
Comment 3•16 years ago
|
||
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.
Reporter | ||
Comment 4•16 years ago
|
||
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]
Updated•16 years ago
|
Whiteboard: [has protocol log]
Comment 5•16 years ago
|
||
> 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.
Comment 6•14 years ago
|
||
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]
Comment 7•14 years ago
|
||
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.
Description
•