Closed Bug 299859 Opened 19 years ago Closed 19 years ago

Firefox reregisters all modules 3 times on every startup

Categories

(Toolkit :: Startup and Profile System, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: bzbarsky, Assigned: robert.strong.bugs)

Details

Attachments

(1 file, 1 obsolete file)

BUILD: MOZ_CO_DATE="Fri Jul 1 23:18:40 CDT 2005" debug build

STEPS TO REPRODUCE: start the build (with -safe-mode if desired; no effect from
doing that).

ACTUAL RESULTS:  "No persistent registry found", followed by registering all
modules three times.  In the process, we leak all sorts of stuff, including
nsDocument objects.

NOTE: other builds pulled at the same time (on a different machine) do not show
this problem.
bz, could I get you attach the following files (singly or zipped):

<profile>/extensions.rdf
<profile>/extensions-startup.manifest
<profile>/extensions.ini
<profile>/extensions/* (if there are any profile-installed extensions at all)
Attached file zip of profile
This is interesting, but I bet the steps to reproduce are going to be a royal
pain if it can be reproduced at all: the extensions-startup.manifest file bz
attached has two separate entries for the default theme:

app-global	{972ce4c6-7e08-4474-a285-3208198ce6fd}
/home/bzbarsky/mozilla/debug/obj-firefox/dist/bin/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}
1115643426	needs-install
app-profile	{972ce4c6-7e08-4474-a285-3208198ce6fd}
extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}	1114971805	

The upper one is "incorrect" in that we should have ignored it when we first
upgraded from the 1.0 -> 1.1 profile, and now it's stuck in an everlasting
needs-restart loop, saved only by the last-ditch recursion check in
nsAppStartup.cpp that prevents us from eternal restarting.
The app-profile entry for the default theme is most likely be due to having a
profile that was upgraded prior to the 1.0 profile upgrade code that landed in
bug 295855. Since having a default theme located in app-profile is a bad thing
for several reasons perhaps it should be checked for existence and removed if
found during every profile upgrade (e.g. 1.0+ to 1.1, 1.1 to 1.0, etc.) and not
just during the conditions for the 1.0 profile upgrade (e.g. existence of an
Extensions.rdf in the extensions dir).
Attached patch safegaurd during upgrade (obsolete) — Splinter Review
I suspect this bug will only affect those that upgraded prior to the checkin of
bug 295855. Checking for the existence of a duplicate theme dir when a app
version mismatch is detected seems like a better way to safe gaurd against this
without a significant perf impact. Another options would be to check for an
app-profile theme being installed during every startup and to check during the
install of any item that it isn't using the default theme id.

My statement of "existence of an Extensions.rdf in the extensions dir" should
have included without an extensions.rdf in the profile dir.
Attachment #188464 - Flags: first-review?(benjamin)
Comment on attachment 188464 [details] [diff] [review]
safegaurd during upgrade

I'm not sure what I think of this: will this break people who switch back and
forth from 1.0 <-> 1.1?
When I tested it when writing the patch in bug 295855 it didn't prevent
downgrading to 1.0 since the reading of the install.rdf only happens once in 1.0
for the default theme... from that point onward it used the entry in
extensions/Extensions.rdf without caring one way or the other about the
existence of the directory. Also, without this patch the same conditions will
occur in regards to the directory not existing when upgrading from 1.0 to a
current nightly, etc. This just removes the directory under more conditions.

I believe this bug is an edge case that will only affect nightly users that
upgraded during a specific time frame. The only reason I think this approach
should be considered is that there may be other cases, the code to fix this is
simple with no known harmful side affects found through testing, and having an
app-profile default theme breaks other things besides multiple registration
(e.g. unable to use the default theme if you upgrade with a non default theme in
use).
Attachment #188464 - Flags: first-review?(benjamin) → first-review+
Assignee: benjamin → rob_strong
I don't think this patch is going to be necessary. This problem only affects a
small number of trunk users and a new profile fixes this.
I'm sorry, but "create a new profile" is never the right answer...
(In reply to comment #9)
> I'm sorry, but "create a new profile" is never the right answer...
Just weighing the risk / benefit ratio in relation to the number of reports of
people experiencing this problem. For example, the checks could be added to
every startup but that would of course cause a perf impact which isn't the right
answer either. In this specific instance the "right answer" IMO is to not put
ourselves in a situation like this when it can be avoided which in this case it
could have been. Also, the patch I came up with will only fix this during a
version upgrade so it isn't an immediate fix. For reference, the bug that
introduced this is bug 286034 and the followup for the regression is bug 295855.
So if this is basically an instance of profile corruption by nightlies, I can
understand the "new profile" approach.  If this is something that would bite
pretty much any nightly tester, then I think it's worth addressing...
Agreed... this only affects a subset of nightly testers and only this subset
would need to create a new profile.
Comment on attachment 188464 [details] [diff] [review]
safegaurd during upgrade

Not checked in - not needed.
Attachment #188464 - Attachment is obsolete: true
Attachment #188464 - Flags: first-review+
After waiting several months and watching for reports where this bug is experienced it appears that comment #8 is correct in the assumption that this is an edgecase that only affected a small number of trunk users. Resolving -> WFM.
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → WORKSFORME
Component: XRE Startup → Startup and Profile System
QA Contact: nobody → startup
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: