Closed
Bug 46000
Opened 24 years ago
Closed 23 years ago
Component Registry not pre-installed on MacOS, VERY slow first startup and runs out of memory quickly
Categories
(Core :: XPCOM, defect, P3)
Tracking
()
VERIFIED
FIXED
mozilla0.9.1
People
(Reporter: mikepinkerton, Assigned: jj.enser)
References
Details
(Keywords: crash, perf)
Attachments
(1 file)
48.08 KB,
text/plain
|
Details |
- delete your component registry to force a rebuild - launch mozilla (it will re-register everything) - go to a couple of webpages, like my.netscape.com and foxnews.com You'll hit a sysError 25 (out of memory) after only a couple of webpages. This only happens after the components are re-registered, probably because we load all the libs but never unload them. Subsequent runs are fine, memory wise. This is pretty bad, as we crash very quickly on first run of the app. A great way to make a first impression!
Comment 1•24 years ago
|
||
It seems that we never unload all the DLLs we load when autoregistering. Most of the heap is thus being used by data (TOC etc) associated with loaded libraries on Mac, which never go away. The rest of the heap is sucked up with the double- buffering GWorld back buffer.
Comment 2•24 years ago
|
||
Perhaps this is related to slowness issues of autoregistration on Mac. A stop-gap solution might be to require autoregistration to always occur separately on the Mac. We certainly need to solve the issue of unloadability, but it probably will not be a quick one.
Status: NEW → ASSIGNED
Comment 3•24 years ago
|
||
Putting on [nsbeta2-] radar. Not critical to beta2. Adding "relnote" keyword for PR2 release. Adding nsbeta3 keyword.
Updated•24 years ago
|
Target Milestone: --- → M20
Reporter | ||
Comment 4•24 years ago
|
||
relnote2 keyword
Comment 5•24 years ago
|
||
I disagree that the ability to unload DLLs is a nsbeta3 function.
Reporter | ||
Comment 6•24 years ago
|
||
whoa, so you're telling me that it's ok that we're running out of memory on registration? ray?
Comment 7•24 years ago
|
||
There are lots of things that XPCOM does that are not OK. But solving the whole problem of being able to unload DLLs in nsbeta3 does not seem likely to happen. There are ways you can work around the problem. I could suggest a few if you like. None are perfect, but it is possible to restart one or multiple times if registration has loaded too many things into memory.
Putting on [nsbeta3+] radar.
Whiteboard: [nsbeta2-] → [nsbeta2-][nsbeta3+]
Comment 9•24 years ago
|
||
A very simple work-around is to pre-build the component.reg file. Unloading DLLs will not happen in beta3. I am marking it "Future" and anyone who would like to come discuss this further may do so. I am leaving it on the nsbeta3 for a few days so that those who marked it beta3 can decide what they want to do instead of unloading DLLs. There are many possible approaches. After that, with no more input, I will remove nsbeta3.
Target Milestone: M20 → Future
Reporter | ||
Comment 10•24 years ago
|
||
What would some of those approaches be, pray tell, since the obvious one is being summarily dismissed?
Reporter | ||
Comment 11•24 years ago
|
||
cc'ing other smart people
Comment 12•24 years ago
|
||
Sorry to jump in here. But this bug has already been given a beta3+ by PDT. Engineers are not allowed to future beta3 approved bugs. Ray if you really don't think this should be fixed in beta3 then you should make your case to PDT (they are the ones that said we need to fix this problem for the Mac for beta3). But we can't future beta3 approved bugs at our level. Although just by scanning the bug this sounds like a pretty severe problem IMHO... anyway, just thought I'd point out that this bug shouldn't be marked future until PDT decides they gave the beta3+ nomination in error (if they decide that)
Comment 13•24 years ago
|
||
Hold the phone. We are *not* going to implement DLL unloading by nsbeta3. There are far, far too many issues with DLL loading for us to even consider it. None of the modules we've written (and I mean *none*) actually reference count the objects they've created. So they don't even know if they can be safely unloaded or not. If we start unloading modules, we will literally introduce *hundreds* of "random" crashes. But let's take a step back here. Look at "step one" that is required to reproduce the bug: - delete your component registry to force a rebuild We will ship the bits with a precompiled component registry. Why on earth would a user delete their component registry? If they *do* delete it, then next time they run the browser, it's going to gobble up memory. And maybe crash. Too bad. It'll be okay after that. (Compare this to deleting any other "system" file that's associated with an application: go ahead, I dare you to delete random files out of /etc, /usr/bin, your Windows system directory, or your Mac system folder. You are asking for trouble.) If the problem is that we're not shipping/installing a precompiled component registry, then let's change the bug to mean that. I'm tempted to mark this bug INVALID as reported, but I won't. Instead I'll clear the nsbeta3+ that was assigned to it, and ask for this to be reconsidered.
Whiteboard: [nsbeta2-][nsbeta3+] → [nsbeta2-]
Reporter | ||
Comment 14•24 years ago
|
||
according to dp the last time I asked him about this, we are _not_ going to ship a preinstalled component registry. While this was bantered around at porkjockeys, and everyone there thought it was a done deal, no one outside those meetings ever took this idea seriously. Since we're not doing that, this bug is perfectly valid. If we are doing that, where is the bug? Who is tasked with the work? When is it scheduled to land? cc'ing dveditz. he might know.
Reporter | ||
Comment 15•24 years ago
|
||
Here's the real problem, there is supposed to be a pre-installed component registry (according to waterson), but for some reason it's either ignored or the date checking is buggy on macOS. This is bad bad bad, however you slice it. What's up here? Who would know? Who is supposed to own the pre-install of the component registry?
Summary: After registering all components, run out of memory very quickly → Component Registry not pre-installed on MacOS
Reporter | ||
Comment 16•24 years ago
|
||
updating summary again
Keywords: perf
Summary: Component Registry not pre-installed on MacOS → Component Registry not pre-installed on MacOS, VERY slow first startup and runs out of memory quickly
Comment 17•24 years ago
|
||
Given this new information it sounds like we want to recommend an nsbeta3+ to PDT for making sure the MAC comes with a pre-installed components.reg. This works on windows and linux but as pinkerton says is aparently not working on the Mac. I think the summary of this bug now reflects that. Thanks pink.
Comment 18•24 years ago
|
||
I'm not convinced this is working on Linux or Windows. I just untar'd the commercial Linux release bits from this AM, and there was no component.reg file in there. I would love to be proven wrong.
Comment 19•24 years ago
|
||
cc'ing warren & dp.
Comment 21•24 years ago
|
||
adding [nsbeta2-]...this is work for nsbeta3
Whiteboard: [nsbeta3+] → [nsbeta3+][nsbeta2-]
Comment 22•24 years ago
|
||
I never suggested I would change the whiteboard status, but only the keywords and target milestone, which I understood should reflect my own analysis as the current owner of the bug. I feel that it is my responsibility to do so. The whole point is that the conflicting values should raise a flag with those who maintain the whiteboard status. I will change the target milestone from "Future" when the bug becomes clearly about something that should be deliverable in a more-concrete time frame (or perhaps a new owner of the bug will).
Comment 23•24 years ago
|
||
This is why people will delete their component registry on Mac: 1. Rumors will start that deleting this file, and getting it rebuilt, will solve instability problems. This is inevitable. 2. Users see this stupid file with a generic icon in the Netscape folder, and wonder why it is there. They will delete it, "but it keeps coming back. Is it a virus?" My point is that this file is in the users face, it has no icon, and generally looks 'lost'. Naive users will be happy to delete it regularly.
Comment 24•24 years ago
|
||
The file should probably live in the cache directory (or a writable portion of "Essential Files"), along with all of hyatt's manifest.rdf files. They all should get the right icons, creator codes, etc. Bug 42184 talks about the need to move these files for unix write permission issues. Reassigning to myself.
Assignee: rayw → warren
Status: ASSIGNED → NEW
Reporter | ||
Comment 26•24 years ago
|
||
we're less than a week away from b3, what's the status on this?
Comment 27•24 years ago
|
||
It's all up to the build team to make sure it goes out with the bits, right?
Reporter | ||
Comment 28•24 years ago
|
||
then maybe we should assign this bug to someone on the build team, perhaps? --> leaf
Assignee: warren → leaf
Comment 29•24 years ago
|
||
Once upon a time, we ran regxpcom to generate this registry on mac; when it started crashing the build machine and preventing deliveries of any kind whatsoever from happening, we turned it off. We still run this as part of the unix and windows automation, because it hasn't crashed on these platforms. Simon Fraser spent a lot of time trying to figure out why this was happening, and it seemed to stop for a while. Unfortunately, it started happening again. Any mac heads want to help debug this?
Status: NEW → ASSIGNED
Comment 30•24 years ago
|
||
We don't need to debug regxpcom on the mac to fix this bug for beta3, nor do we have time. We simply need to launch the browser, and it will automatically build the components.reg file to ship. We just have to make sure we do that before the bits go out the door.
Comment 31•24 years ago
|
||
fine, whatever. marking resolved remind, leaving in this milestone.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → REMIND
Comment 32•24 years ago
|
||
Reopening. Having Mac do autoreg on first run after an installation still sucks, and has the side-effect of causing serious low memory problems.
Status: RESOLVED → REOPENED
Resolution: REMIND → ---
Comment 33•24 years ago
|
||
Giving to JJ for some mac release machine loving.
Assignee: leaf → jj
Status: REOPENED → NEW
Reporter | ||
Comment 34•24 years ago
|
||
adding rtm keyword. this is very important that we fix!
Keywords: rtm
Comment 35•24 years ago
|
||
Reasons for fixing this are described in bug 57835.
Comment 36•24 years ago
|
||
build release would be happy to do this as soon as you fix regxpcom. rtm- til regxpcom is fixed.
Whiteboard: [nsbeta3+][nsbeta2-] → [nsbeta3+][nsbeta2-][rtm-] need regxpcom fixed.
Assignee | ||
Comment 37•24 years ago
|
||
Until RegXPCOM gets fixed (not by me), Release could use the following workaround for RTM. since the automation is what prevents us from delivering a prebuilt component.reg on mac, I could to run Netscape by hand and add the newly generated component registry to the installer... I am willing to do that for RTM candidates -only-. (and maybe set the file type & creator so that the registry has a Netscape icon and doesn't seem 'lost') For those of you who have missed the first few episodes of this long story, take a look at related bugs 13129, 31858, and mainly 24312.
Status: NEW → ASSIGNED
Comment 38•24 years ago
|
||
jj: I recall discussing this with Leaf, and agreeing to run mozilla by hand for RTM candidate builds to generate the component.reg file. I think it would be great if you could do this!
Assignee | ||
Updated•24 years ago
|
QA Contact: leger → granrose
Assignee | ||
Comment 39•24 years ago
|
||
working on a "half-automated" solution where the component registry gets generated after the build is complete, then added to the browser.xpi installer module.
Comment 40•24 years ago
|
||
FWIW, I've testing RegXPCOM, and it still crashes in the same way.
Assignee | ||
Comment 41•24 years ago
|
||
Since 11/03, the packaging process launches mozilla/netscape after the build and delivers the component registry generated file. This has proved to be a viable solution... as long as we don't have DOA builds ;- ) This way, Release would discover and report crashes on startup before the bits even get to the somketesters!
Status: ASSIGNED → RESOLVED
Closed: 24 years ago → 24 years ago
Resolution: --- → FIXED
Updated•24 years ago
|
Status: RESOLVED → VERIFIED
Comment 42•24 years ago
|
||
verified fixed.
Assignee | ||
Comment 43•23 years ago
|
||
Reopening. Crashes have re-occured when launching Netscape at the end of the build, so this part of the automation has been turned off again since around March 20 :-( I have 2 stack traces captured with Netscape 6, build 2001-05-30-11, coming up. changing target milestone from M18 to ... 0.9.1?
Assignee | ||
Comment 44•23 years ago
|
||
Comment 45•23 years ago
|
||
That log shows 2 crashes; which should we be looking at?
Assignee | ||
Comment 46•23 years ago
|
||
I attached both crashes (hence the (2) in the attachment name) because they both occured during test autoreg tests I did yesterday, but I now realize that the first one might be unrelated: crash 1 occured after I did the following: 1. started up NS6 2. observed all components registration 3. waited until idle on www.netscape.com 4. pressed Cmd-Q 5. Boom! (hence the domenu/menuSelected calls in the first stack trace) This might be a totally different bug that might not affect the release automation since NS gets launches & quit using AppleEvents, not a Cmd key :-) crash 2 occured a few minutes later as I was trying again. 1. Deleted previous Components Registry file 2. Launched NS 6 3. Observed Components registration in the splash screen 4. Boom!
Comment 47•23 years ago
|
||
jj: please test and see if you can reproduce these crashes.
Assignee | ||
Comment 48•23 years ago
|
||
I ran a basic script to see if this worked in an "automated environment": set myNetscape to "disk:mozilla tree:ns:dist:viewer:Netscape 6" tell application myNetscape to activate delay 5 tell application myNetscape to quit This ran just fine on both 06-01-11-trunk and 06-01-14-0.9.1 builds (tested on the branch right after the normal packaging automation ended), so I will flip the switch back on and pray that this is the last one I need to change this.
Assignee | ||
Comment 49•23 years ago
|
||
patch to BuildCentral Default Settings (applied on the branch verif. build mac
only)
< #mz_make_comp_reg false
< #ns_make_comp_reg false
---
> #mz_make_comp_reg true
> #ns_make_comp_reg true
Status: REOPENED → RESOLVED
Closed: 24 years ago → 23 years ago
Resolution: --- → FIXED
Whiteboard: need help
Assignee | ||
Comment 50•23 years ago
|
||
Yeah! branch builds from the weekend and today's didn't crash. Looking at the build machines directories, the component registry was successfully created for all these builds. Grace, please verify it's also installed by the installer. Applying the changes to the trunk automation now.
QA Contact: granrose → gbush
Comment 51•23 years ago
|
||
verified with RTM build 2001072621 and trunk build 2001081704
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•