Closed Bug 40180 Opened 25 years ago Closed 25 years ago

Mozilla continues to update profile when it is in the trash (mac-only)

Categories

(Core Graveyard :: Profile: BackEnd, defect, P1)

PowerPC
Mac System 9.x

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: jrgmorrison, Assigned: racham)

Details

(Whiteboard: [nsbeta2+])

Overview Description: Mozilla profile directory missing --> causes crash on mac os9.0 I don't know how I initially got into this state, but here are steps to set yourself up for a crash. Something is wrong with the profile creation logic on mac. Note: while the scenario below seems like luser error, these are just the steps to reproduce what happened to me -- i.e., my profile directory "spontaneously" vanished, and this just simulates what happens after that time. (I have no idea how my profile directory got nuked, though). Steps to Reproduce: 1) Delete the Mozilla Registry and the Mozilla directory in the Documents folder (this is the default location for profiles, right?) 2) start mozilla -- this causes a default profile to be created 3) exit mozilla, and then delete the Mozilla folder, but keep the Mozilla Registry 4) start mozilla -- a _document_ called Mozilla is created in the Documents directory, with contents being those of the default home page as HTML -- http://home.netscape.com/ 5) now start mailnews from browser. If it does not crash immediately, then try to use the mailnews window to do something, or resize it a few times. Eventually it will crash (and it's useless in meantime). Reproducibility: always Actual Results: a crash (and the profile directory is now a document) Expected Results: whatever the plan is for starting in the absence of a profile directory -- I suppose: create one :-] Build Date & Platform Bug Found: 2000052208 mac os 9.0 comm. build Additional Builds and Platforms Tested On: does not crash on linux/win32 20000522 Additional Information: On one occasion, while starting I got some error dialogs about bogus content in prefs.js. macsbug stack trace (although this may just be a "victim" of the bogus profile situation). Calling chain using A6/R1 links Back chain ISA Caller 00000000 PPC 1F25C7FC 0F195140 PPC 1F248504 main+00140 0F1950E0 PPC 1F2479C0 main1(int, char**, nsISupports*)+00944 0F194E20 PPC 1EF2018C nsAppShellService::Run()+00018 0F194DE0 PPC 1ED7518C nsAppShell::Run()+00038 0F194D90 PPC 1ED75888 nsMacMessagePump::DoMessagePump()+0003C 0F194D40 PPC 1ED75E90 nsMacMessagePump::DispatchEvent(int, EventRecord*)+00174 0F194CF0 PPC 1ED8CC84 Repeater::DoRepeaters(const EventRecord&)+00030 0F194CB0 PPC 1ED557E4 nsMacNSPREventQueueHandler::RepeatAction(const EventRecord&)+0000C 0F194C70 PPC 1ED558FC nsMacNSPREventQueueHandler::ProcessPLEventQueue()+000B0 0F194C00 PPC 1F0A8C88 nsEventQueueImpl::ProcessPendingEvents()+00038 0F194BA0 PPC 1F1045D4 PL_ProcessPendingEvents+0004C 0F194B60 PPC 1F1046BC PL_HandleEvent+00020 0F194B20 PPC 1EC30D90 nsStreamListenerEvent::HandlePLEvent(PLEvent*)+00024 0F194AD0 PPC 1EC31C48 nsOnStopRequestEvent::HandleEvent()+00070 0F194A80 PPC 1EC4D584 nsStreamIOChannel::OnStopRequest(nsIChannel*, nsISupports*, unsigned int, const unsigned short*)+00068 0F194A30 PPC 1EC4A4F8 nsLoadGroup::RemoveChannel(nsIChannel*, nsISupports*, unsigned int, const unsigned short*)+00104 0F1949B0 PPC 1EC28FD0 nsDocLoaderImpl::OnStopRequest(nsIChannel*, nsISupports*, unsigned int, const unsigned short*)+00060 0F194960 PPC 1EC29128 nsDocLoaderImpl::DocLoaderIsEmpty(unsigned int)+00028 0F194900 PPC 1EC29200 nsDocLoaderImpl::DocLoaderIsEmpty(unsigned int)+00100 0F1948A0 PPC 1EC2956C nsDocLoaderImpl::FireOnEndDocumentLoad(nsDocLoaderImpl*, nsIChannel*, unsigned int)+00138 0F194820 PPC 1F13631C nsWebShell::OnEndDocumentLoad(nsIDocumentLoader*, nsIChannel*, unsigned int)+0030C 0F1941D0 PPC 1EF16A8C nsWebShellWindow::OnEndDocumentLoad(nsIDocumentLoader*, nsIChannel*, unsigned int)+00230 0F194060 PPC 1EF35498 nsXULWindow::OnChromeLoaded()+00060 0F193FD0 PPC 1EF359E0 nsXULWindow::LoadPositionAndSizeFromXUL(int, int)+0035C 0F193BA0 PPC 1EF34210 nsXULWindow::SetSize(int, int, int)+00028 0F193B60 PPC 1ED6D654 nsMacWindow::Resize(int, int, int)+00110 0F193B00 PPC 1ED5242C nsWindow::Resize(int, int, int)+00070 0F193AC0 PPC 1ED543D0 nsWindow::ReportSizeEvent()+0006C 0F193A40 PPC 1ED53F88 nsWindow::DispatchWindowEvent(nsGUIEvent&)+00018 0F193A00 PPC 1ED53EB4 nsWindow::DispatchEvent(nsGUIEvent*, nsEventStatus&)+00094 0F1939B0 PPC 1EF138D4 nsWebShellWindow::HandleEvent(nsGUIEvent*)+0014C 0F1937B0 PPC 1F13B4E4 nsWebShell::SetPositionAndSize(int, int, int, int, int)+00048 0F193760 PPC 1F14DF38 nsDocShell::SetPositionAndSize(int, int, int, int, int)+00060 0F193700 PPC 1EA6B9B0 DocumentViewerImpl::SetBounds(const nsRect&)+00038 0F1936C0 PPC 1ED524F4 nsWindow::Resize(int, int, int, int, int)+00048 0F193670 PPC 1ED5242C nsWindow::Resize(int, int, int)+00070 0F193630 PPC 1ED543D0 nsWindow::ReportSizeEvent()+0006C 0F1935B0 PPC 1ED53F88 nsWindow::DispatchWindowEvent(nsGUIEvent&)+00018 0F193570 PPC 1ED53EB4 nsWindow::DispatchEvent(nsGUIEvent*, nsEventStatus&)+00094 0F193520 PPC 1D8403E4 HandleEvent(nsGUIEvent*)+00058 0F1934D0 PPC 1D849270 nsViewManager2::DispatchEvent(nsGUIEvent*, nsEventStatus*)+00194 0F1933A0 PPC 1D847630 nsViewManager2::SetWindowDimensions(int, int)+00064 0F193350 PPC 1E780498 PresShell::ResizeReflow(nsIView*, int, int)+0001C 0F193310 PPC 1E77AD8C PresShell::ResizeReflow(int, int)+002D4 0F193150 PPC 1EA26C40 ViewportFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+001EC 0F192FC0 PPC 1E758274 nsContainerFrame::ReflowChild(nsIFrame*, nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, int, int, unsigned int, unsigned int&)+000C8 0F192F50 PPC 1EB0F7F0 nsRootBoxFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+0000C 0F192F10 PPC 1EA53DD8 nsBoxFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00214 0F192E30 PPC 1EA54528 nsBoxFrame::Layout(nsBoxLayoutState&)+0003C 0F192DF0 PPC 1EB08290 nsContainerBox::Layout(nsBoxLayoutState&)+00078 0F192DA0 PPC 1EB0C818 nsStackLayout::Layout(nsIBox*, nsBoxLayoutState&)+000D8 0F192D00 PPC 1EA54528 nsBoxFrame::Layout(nsBoxLayoutState&)+0003C 0F192CC0 PPC 1EB08290 nsContainerBox::Layout(nsBoxLayoutState&)+00078 0F192C70 PPC 1EB09B38 nsSprocketLayout::Layout(nsIBox*, nsBoxLayoutState&)+0081C 0F192A90 PPC 1EA54528 nsBoxFrame::Layout(nsBoxLayoutState&)+0003C 0F192A50 PPC 1EB08290 nsContainerBox::Layout(nsBoxLayoutState&)+00078 0F192A00 PPC 1EB09B38 nsSprocketLayout::Layout(nsIBox*, nsBoxLayoutState&)+0081C 0F192820 PPC 1EA54528 nsBoxFrame::Layout(nsBoxLayoutState&)+0003C 0F1927E0 PPC 1EB08290 nsContainerBox::Layout(nsBoxLayoutState&)+00078 0F192790 PPC 1EB09B38 nsSprocketLayout::Layout(nsIBox*, nsBoxLayoutState&)+0081C 0F1925B0 PPC 1EB055E8 nsBoxToBlockAdaptor::Layout(nsBoxLayoutState&)+00138 0F1924F0 PPC 1EB05D70 nsBoxToBlockAdaptor::Reflow(nsBoxLayoutState&, nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&, int, int, int, int, int)+00640 0F192270 PPC 1EAC9E20 nsTreeOuterFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+002A4 0F1920C0 PPC 1E818A2C nsTableOuterFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00240 0F191E90 PPC 1E816FF4 nsTableOuterFrame::OuterReflowChild(nsIPresContext*, nsIFrame*, const nsHTMLReflowState&, nsHTMLReflowMetrics&, int*, nsSize&, nsMargin&, nsMargin&, nsReflowReason, unsigned int&)+001E4 0F191D50 PPC 1E758274 nsContainerFrame::ReflowChild(nsIFrame*, nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, int, int, unsigned int, unsigned int&)+000C8 0F191CE0 PPC 1EA14568 nsTreeFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+000A0 0F191C50 PPC 1E80D008 nsTableFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00420 0F191B00 PPC 1E80DD38 nsTableFrame::ResizeReflowPass2(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+00184 0F191A60 PPC 1E8107D8 nsTableFrame::ReflowMappedChildren(nsIPresContext*, nsHTMLReflowMetrics&, InnerTableReflowState&, unsigned int&)+00338 0F1917D0 PPC 1E758274 nsContainerFrame::ReflowChild(nsIFrame*, nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, int, int, unsigned int, unsigned int&)+000C8 0F191760 PPC 1E81F5C0 nsTableRowGroupFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+0018C 0F191680 PPC 1E81DA30 nsTableRowGroupFrame::ReflowMappedChildren(nsIPresContext*, nsHTMLReflowMetrics&, RowGroupReflowState&, unsigned int&, nsTableRowFrame*, nsReflowReason, int, int)+002D8 0F1914C0 PPC 1E758274 nsContainerFrame::ReflowChild(nsIFrame*, nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, int, int, unsigned int, unsigned int&)+000C8 0F191450 PPC 1E81F5C0 nsTableRowGroupFrame::Reflow(nsIPresContext*, nsHTMLReflowMetrics&, const nsHTMLReflowState&, unsigned int&)+0018C 0F191370 PPC 1E81D83C nsTableRowGroupFrame::ReflowMappedChildren(nsIPresContext*, nsHTMLReflowMetrics&, RowGroupReflowState&, unsigned int&, nsTableRowFrame*, nsReflowReason, int, int)+000E4 0F1911B0 PPC 1EA9F8B4 nsTreeRowGroupFrame::GetFirstFrameForReflow(nsIPresContext*)+00210 0F191070 PPC 1EE44524 nsXULElement::ChildCount(int&) const+00018 0F191030 PPC 1EE48D64 nsXULElement::EnsureContentsGenerated() const+000E4 0F190FB0 PPC 1EDF1018 nsXULDocument::CreateContents(nsIContent*)+00098 0F190F60 PPC 1EE783F8 nsXULTemplateBuilder::CreateContents(nsIContent*)+00054 0F190F10 PPC 1EE7D39C nsXULTemplateBuilder::CreateTemplateAndContainerContents(nsIContent*, nsIContent**, int*)+00128 0F190DF0 PPC 1EE7D688 nsXULTemplateBuilder::CreateContainerContents(nsIContent*, nsIRDFResource*, int, nsIContent**, int*)+0020C 0F190C70 PPC 1EE6E3D0 RootNode::Propogate(const InstantiationSet&, void*)+00040 0F190C00 PPC 1EE6E6D8 TestNode::Propogate(const InstantiationSet&, void*)+0009C 0F190B60 PPC 1EE6E670 TestNode::Propogate(const InstantiationSet&, void*)+00034 0F190AC0 PPC 1EE754C4 RDFContainerMemberTestNode::FilterInstantiations(InstantiationSet&, void*) const+012A8 0F1905A0 PPC 1EDD9F04 CompositeEnumeratorImpl::HasMoreElements(int*)+00080 0F190500 PPC 1EDDA8F0 CompositeAssertionEnumeratorImpl::GetEnumerator(nsIRDFDataSource*, nsISimpleEnumerator**)+00038 0F1904C0 PPC 1D59295C nsMsgFolderDataSource::GetTargets(nsIRDFResource*, nsIRDFResource*, int, nsISimpleEnumerator**)+000BC 0F190430 PPC 1D8812FC nsImapMailFolder::GetSubFolders(nsIEnumerator**)+00274 0F190350 PPC 1D8CECDC nsMsgFolder::SetPrefFlag()+00358 0F190180 PPC 1D4EA510 nsMsgFolder::SetFlag(unsigned int)+00060 0F190130 PPC 1D4EA724 nsMsgFolder::OnFlagChange(unsigned int)+00058 0F190090 PPC 1D4BF26C nsMsgLocalMailFolder::GetDBFolderInfoAndDB(nsIDBFolderInfo**, nsIMsgDatabase**)+00064 0F190010 PPC 1F089844 nsComponentManager::CreateInstance(const nsID&, nsISupports*, const nsID&, void**)+00054 0F18FFC0 PPC 1F0A2F10 nsComponentManagerImpl::CreateInstance(const nsID&, nsISupports*, const nsID&, void**)+00074 0F18FF60 PPC 1F0A293C nsComponentManagerImpl::FindFactory(const nsID&, nsIFactory**)+000EC 0F18FEE0 PPC 1F0ED36C nsNativeComponentLoader::GetFactory(const nsID&, const char*, const char*, nsIFactory**)+001C4 0F18FA50 PPC 1F0EFE8C nsNativeComponentLoader::GetFactoryFromModule(nsDll*, const nsID&, nsIFactory**)+00044 0F18F9D0 PPC 1F095A04 nsDll::GetModule(nsISupports*, nsIModule**)+00084 0F18F980 PPC 1F0958CC nsDll::FindSymbol(const char*)+00044 0F18F940 PPC 1F1E39FC PR_FindSymbol+00038 Closing log
Summary: Mozilla profile directory missing --> causes crash on mac os9.0 → Mozilla profile directory missing --> causes crash on mac os9.0
I am getting something else- equally troubling on Mac OS 8.5.1 First off, my Documents folder has a subfolder - Users50, which will contain the first default profile folder created in step 2 unlike John's (Documents/Mozilla/Users50/default After exiting, deleting the users50 folder and subfolder default (comparable to John's Mozilla/Users50/default(but not Mozilla Registry), I can run Mozilla and it creates a default profile (expected behavior-with default prefs)- with all the profile files/folders in the mozilla-mac-M16 folder with the program files. The good news is that I do not crash- but my profile is intermingled with the app
You know, I saw this happen once (profile mixed into the app folder), but assumed that it was a transient effect during the chrome restructuring. I blew away my Mozilla Registry, and everything was fine after that point. However, if this is still happening, then this wasn't just a side-effect of the chrome changes.
Adding crash keyword
Keywords: crash
Assigning to myself.
Assignee: selmer → racham
I don't have a Mac 9.0. I didn't get a crash on my 8.6 (OS) machine. When we delete profile directory and keep registry and run browser with that profile...I noticed that app folder is considered as profile folder and profile contents are mingled with app folder. It works fine on windows and Linux as the path to the directory in the mozregistry is recovered and honored. On Mac, the profile directory name is stored as a presistent format which then was not retrieved to build the directory of the profile we choose. This could be a problamatic in situations where user has multiple profile and his users directory is nuked.....all profiles pointing to app folder and one profile overwriting other profile contents.. I think as a fix to this, we need to build the path (get the default path and append the profile name) for the profile and thus make an exclusive place for each profile. THIS IS A MAC ONLY ISSUE.. Adding nsbeta2 keyword. John, stack trace didn't suggest directly that it is due the missing profile dir...does the crash still happen....?
Status: NEW → ASSIGNED
Keywords: nsbeta2
Target Milestone: --- → M17
Yeah. The stack is pointing elsewhere, but my guess is that the memory is just trounced somewhere because I can get random fragments of browser/mail UI painting on the screen before the crash occurs (sorry, difficult to explain what it looks like). Using the steps to reproduce above, I still get the crash today -- but this time I got no stack at all -- but I'm not surprised (I think things are set up for a fall, and some method eventually gets to be the victim).
Putting on [nsbeta2+] radar for beta2 fix.
Whiteboard: [nsbeta2+]
Okay, bhuvan and I tested a revised profile.shlb on my system, and I no longer get the crash. However, there is still a problem: 1) drag documents:Mozilla to the trash 2) Start mozilla A file called 'Mozilla' is created in the Documents: folder, and it contains the HTML from my startup page. But the browser starts OK. However, now, if a change any preferences, the changes are written to the profile that I threw in the Trash! This is not good -- a user could run for quite a while in this mode, then empty their trash one day and lose all of their preferences, their history, their bookmarks, etc. Clearly, the filespec should not return a ref to a directory in the trash, treating this as just another normal file/folder.
Severity: critical → major
Keywords: crash
changing priority to P1. Not at all good to update trash contents.....! I will check the issue at the point filespec level.
Priority: P3 → P1
Adding crash to keyword field.
Keywords: crash
re-summarize, and remove crash keyword. No longer a crash, but serious nonetheless.
Keywords: crash
Summary: Mozilla profile directory missing --> causes crash on mac os9.0 → Mozilla continues to update profile when it is in the trash (mac-only)
Fix checked in. With this change when a profile directory is physically deleted, on Mac, the folder in the trash gets ignored and a new folder gets created under the deafult location. Thanks john....for letting me use your 9.0 machine and helping me test intermediate shlb files. On other platforms, the behavior remains as usual. On physical deletion, Whereever the profile directory was, it ges recreated in the same place again. Marking fixed.
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
build 2000061908- Mac OS9.0 was able to reproduce part of this bug (updating folder in trash) with older build and confirmed it does not happen with latest build
Status: RESOLVED → VERIFIED
OS: Mac System 9.x
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.