Closed Bug 82821 Opened 23 years ago Closed 23 years ago

Unable to finish folder discovery on account; get multiple .msf files generated for one folder

Categories

(MailNews Core :: Database, defect, P1)

PowerPC
Mac System 9.x
defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla0.9.1

People

(Reporter: lchiang, Assigned: sspitzer)

References

Details

(Whiteboard: [nsbeta1+] tested, have r and sr, seeking approval)

Attachments

(4 files)

Unable to finish folder discovery on account; get multiple .msf files generated for one folder Mac OS 9 2001-05-25-08 commercial trunk build. Win32 does not have this problem. 1. Create new profile 2. Start the product 3. Cancel out of activation dlg 4. Browser appears 5. Click Buddy List tab and set up for IM screenname 6. Exit and restart. (note: step 5,6 are necessary due to another bug on commercial build where this IM dlg will cause some other problems if not set up for IM). 7. Browser appears. Tasks | Mail 8. Set up for my IMAP netscape.com account 9. Log into IMAP 10. The status bar will eventually read "looking for folders..." 11. After a short while, the throbber stops moving and my system is locked up. 12. Must force reboot. 13. Now, when I look into the Finder into my IMAPMail folder, I see many (up to 33!) .msf files created for one folder I have. Note: This does not have to do with the folder name because I've renamed the folder and then I see this problem with another folder name. In my conversation with David, he writes: LisaChiang (6:12:56 PM): interesting note. when I crashed, the next time I started on the Mac during "looking for folders" I see the following: LisaChiang (6:13:08 PM): I have a folder called archive (it's at the top level). LisaChiang (6:13:51 PM): I see folders: Archive, Archive-1 all the way through a very high number (ie. Archive-30) or more. What do you think would cause these other archive folders to show up? dbienvenu (6:13:59 PM): oh. LisaChiang (6:14:32 PM): It's very strange. dbienvenu (6:14:38 PM): the -1, -2, etc is an attempt to create unique database names LisaChiang (6:14:43 PM): I think I now have tons of those msf files. LisaChiang (6:14:56 PM): why would we do that when I just have one archive folder. dbienvenu (6:15:07 PM): so what happens is we discover a folder foo and we find a database called foo.msf, but it doesn't seem like the same folder to us, for some reason. dbienvenu (6:15:12 PM): so we create foo-1.msf LisaChiang (6:15:21 PM): I think that is where I am hanging on the mac. dbienvenu (6:15:33 PM): so the problem is that we don't think the database is the right db for the folder. dbienvenu (6:15:44 PM): Seth and Cavin made some changes in this area for migration. LisaChiang (6:15:48 PM): this is on a new profile, first time logging in. dbienvenu (6:15:53 PM): right. LisaChiang (6:16:01 PM): I will file bug then for them to debug this. dbienvenu (6:16:08 PM): it creates all those .msf files for just one run? Note2: I tried another IMAP account with folders in it and it works fine. Able to get through folder discovery and loading folders. If you need my account to debug this, pls let me know.
cc: seth and cavin.
get this on the 0.9.1 radar. david, I've got a mac build here at home, I can look into it.
Target Milestone: --- → mozilla0.9.1
Keywords: nsbeta1
Priority: -- → P1
Whiteboard: [nsbeta1+]
Seth - if you want to debug this further, give me a page and, unless I'm asleep, I will call you with my mail password. Thanks.
Seth graciously offered to look at this.
Assignee: bienvenu → sspitzer
updating status.
Status: NEW → ASSIGNED
Whiteboard: [nsbeta1+] → [nsbeta1+] still rebuilding on my mac [2:32 5/29/2001]
Reproduced on more than one system. Will work with Seth to reproduce this on this Mac build.
so far, here's what it looks like. we aren't properly handling long file names on the mac. lisa has some folders on her imap server that exceed the minimum. there is code to hash long file names. my guess (so far) is that we aren't using it in all places. specifically, looking at my panacea.dat (where we store paths to the summary files) we aren't using the hashed names. still investigating...
getting somewhere, I think. nsMsgDBFolder::CreatePlatformLeafNameForDisk() needs to do some magic hashing. (NS_MsgHashIfNecessary()). that gets called on folder discovery [by nsImapMailFolder::CreateClientSubfolderInfo()] I'll start with that problem and see how much further it gets me. (there might be more places we need the magic hashing code)
the following patch is the start of the fix. it fixes the problem that lisa found on the mac. (note, that patch also has a change to allow me to test the fix on win32 / linux, which I won't check in.) three things need to be done: 1) I need to add back the code that will make the .msf unique if it already exists (I removed that) 2) move the "illegal char substitution" code into NS_MsgHashIfNecessary(), and if the file doesn't get hashed, I need to make the substitution because... 3) NS_MsgHashIfNecessary() is really NS_MakeFilenameSafeForOS(). so I'll rename it. I'll work on these three things tomorrow, and have something to land tomorrow or thursday.
Whiteboard: [nsbeta1+] still rebuilding on my mac [2:32 5/29/2001] → [nsbeta1+] fix in hand, polishing, able to land 5-30 / 5-31
changing qa contact and assigning it to myself
QA Contact: esther → sheelar
commercial buildid: 2001052508 Mac-OS-9.0.4 I tried to recreate this problem on my mac machine by doing the following: -On my win98 machine I created the folders below in my IMAP account -I created the two folders which apparently was causing this problem. 1st Level folder name: ! Me - To Do and created a sub folder ->nscp6_problems_to_investigate. -I copied few messages to both the folders I followed the steps described from 1 to 10 in the initial description of the bug and saw different results: 1.The application did not hang and created the folder structure and downloaded some 1500 messages in my mail box. 2.I checked my IMAPMail folders and did not see multiple .msf files created for one folder 3.I noticed that the subfolder 'nscp6_problems_to_investigate' was no where to be found in the 3 pane. Folder ! Me - TO DO did not have the twisty to indicate the subfolder at all. 4.I closed the application and relaunched it again. I still could not see the subfolder 5. I checked ImapMail Folder on my hard drive and I see '! Me -To Do.sbd'. When I open the twisty I should see 'nscp6_problems_to_investigate.msf' file but I don't see it. Could this behavior be related to this problem?
that sounds related. when I test my final fix on the mac, we can test that scenario. here comes a cleaned up fix...
Attached patch patch (deleted) — Splinter Review
yikes. Looks OK, except for the K&R braces style creeping in :-)
some comments: 1) I tried to keep this patch clean and minimal. (trying to reduce the risk so close to 0.9.1 & beta). [That's the reason I didn't rename NS_MsgHashIfNecessary()] 2) the illegal chars / length code [which was not turned on] that was in nsMsgDBFolder.cpp is now in NS_MsgHashIfNecessary(). If the suggested name is too long, we do the same old hashing. If (and this is new) it contains illegal characters, I simply hash the whole string. (hash results are always safe). this should prevent collision and always make it so we hash to a unique file name. the worry is that "foo_bar" and "foo:bar" will map to the same summary file ("foo_bar.msf"). but by hashing completely, we avoid this edge case 3) CreatePlatformLeafNameFromDisk() is now CreateFileSpecForDB(), and we return the file spec. I've moved all the "unique" magic in CreateFileSpecForDB (). that, plus the hashing code, makes us very safe. 4) the existing callers of NS_MsgHasIfNecessary() are safe. OS/2 now hashes when the name is > 8 (they have 8.3 limits). imap also uses this, but I'm was broken (and using it consistently will fix it.) news is safe, since the "illegal characters" are not valid characters in newsgroup or host names. 5) I've added comments in the code to explain other changes
I tried a bunch of tests on win32, new profile, existing profile, deleting panacea.dat, all worked fine. I did see a problem on a new profile when selecting the inbox failed the first time, because of Sera flakiness, but I don't think that had to do with this patch.
thanks for testing. an extra note: since I'm hashing (instead of simply replacing illegal chars with '_'), this can cause some .msf (for imap folders only) to get ignored the first time someone runs with a build with this patch. according to bienvenu, losing (and rebuilding) the .msf file one time is acceptable.
tested on the mac. looking good. can I get an official r/sr?
Whiteboard: [nsbeta1+] fix in hand, polishing, able to land 5-30 / 5-31 → [nsbeta1+] tested, seeking reviews.
r/sr=bienvenu, whichever you need.
With your patch builds, does my IMAP account successfully get set up with all folders discovered and loading? If you want, perhaps we can try this on the Mac tomorrow too on your debug builds (if we don't have release builds in time with your patches in it).
I'm at home, and my mac is outside the firewall so I can't test your problem. but, I tested original "proof of concept" patch inside the firewall yesterday on your account and it fixed the problem. outside the firewall, I've tested on my mac against an imap account I have with long folder names. the problems I was seeing are gone. (I also tested some edge cases on win32 by setting the max len to 5 and adding common characters to the illegal char list, to test out that code) I hope to land this patch tonight.
sr=mscott
updating.
Whiteboard: [nsbeta1+] tested, seeking reviews. → [nsbeta1+] tested, have r and sr, seeking approval
a=leaf, we must protect the users from weak filesystems!
fixed. note, another side effect of this bug was you could end up with a file named ".msf" in the application directory. lisa / sheela, can you test again with tomorrow? I don't think you should have to do anything special (like remove any files or create a new profile.) it should just work out of the box. (famous last words...)
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Creating an .msf file at a higher directory has always been there on the Mac, I think: http://bugzilla.mozilla.org/show_bug.cgi?id=6402
lisa: not "<server>.msf", literally ".msf" in the same folder as "prefs.js"
buildid: 2001053108 My problem seemed to have been fixed which I mentioned in comments 2001-05-30 15:36. I checked for the folders that I had created previously on existing profile and also on a new profile. I was able to see the subfolder and messages in that folder. I also did not see any .msf created in the same directory as perf.js In verifying this bug I created some more folders with long names and with different characters and they all seemed to work fine. Checked this on imap account. Still need to check this for pop and will update the bug after I do so. Also, I will verify this bug after checking with lisa on her mac machine.
I am going to verify this bug since it fixed my problem as mentioned in my comments below. I will log a new bug for local folders since creation of a new folder with long name created a .msf file in application directory and as well does not create a folder at all. Seth and I created lisa's imap account on my mac machine and were able to successfully discover all the folders on the imap server. However, this problem still exists on lisa's machine which could be a different problem. I will log a new bug for that specific problem too. Hmmm....Also multiple .msf files getting created for folders has also been resovled by this fix.
Status: RESOLVED → VERIFIED
I logged #84008 to cover the problem we saw on esther's and lisa's machine after this fix landed.
Actually, this bug is hitting part of bug 20324 problems, so that's when I didn't verify for bug 20324 yet. I am adding this bug in bug 20324 for future reference.....
Blocks: 20324
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: