Closed Bug 599105 Opened 12 years ago Closed 12 years ago

Default wizard page of update extensions window shown when switching between builds

Categories

(Toolkit :: Add-ons Manager, defect)

All
macOS
defect
Not set
major

Tracking

()

VERIFIED FIXED
mozilla2.0b7
Tracking Status
blocking2.0 --- final+

People

(Reporter: ehsan.akhgari, Assigned: mossop)

Details

(Keywords: polish)

Attachments

(2 files)

Attached image Screenshot
This usually happens to me when I run 1.9.2 on a profile and then run trunk on the same profile.  See the screenshot.

Sometimes, this dialog shows up momentarily and gets replaced by the correct update extensions dialog.  And othertimes it just stays open this way until I manually click Done.

This is definitely not what we want.
blocking2.0: --- → ?
Anything showing in the error console?
(In reply to comment #1)
> Anything showing in the error console?

I can't invoke the error console at that stage, can I?
You can after you click Done right?
I have also seen this a couple of times during startup. Could it be an uninitialized page of the upgrade dialog wizard?
(In reply to comment #3)
> You can after you click Done right?

Yeah.  I tried to repro it a few times, but I couldn't.  However, I'm pretty sure that I'll see it again soon, as this was not the first time that this happened.
Sounds like the check is just taking a while and we init the wizard and while it's waiting it shows the default into page? mxr'ing for the text in the screenshot should help us reverse engineer how we got here.
Need to track down why this is happening ... speculatively blocking as it's a bad startup experience that makes perf look worse.
blocking2.0: ? → final+
Keywords: polish
(In reply to comment #6)
> Sounds like the check is just taking a while and we init the wizard and while
> it's waiting it shows the default into page? mxr'ing for the text in the
> screenshot should help us reverse engineer how we got here.

I must say that I think I've always seen this on debug builds, and my machine is not really that fast, so that might actually be the case.
(In reply to comment #9)
> (In reply to comment #6)
> > Sounds like the check is just taking a while and we init the wizard and while
> > it's waiting it shows the default into page? mxr'ing for the text in the
> > screenshot should help us reverse engineer how we got here.
> 
> I must say that I think I've always seen this on debug builds, and my machine
> is not really that fast, so that might actually be the case.

The only thing that is going on between showing this page and the next is retrieving all add-ons from the database. If that is particularly slow then it would be very interesting to understand why. That said it looks like we could just skip straight to the following page without doing that first.
(In reply to comment #10)
> (In reply to comment #9)
> > (In reply to comment #6)
> > > Sounds like the check is just taking a while and we init the wizard and while
> > > it's waiting it shows the default into page? mxr'ing for the text in the
> > > screenshot should help us reverse engineer how we got here.
> > 
> > I must say that I think I've always seen this on debug builds, and my machine
> > is not really that fast, so that might actually be the case.
> 
> The only thing that is going on between showing this page and the next is
> retrieving all add-ons from the database. If that is particularly slow then it
> would be very interesting to understand why.

I/O?  :D
Well sure, but if opening the database and performing a few async queries on it takes long enough for you to think that it is staying open permanently (I guess that must be 30 seconds at least right?) then there is something wrong with how we're accessing the DB I think.
What add-ons do you have installed here?
(In reply to comment #13)
> What add-ons do you have installed here?

It varies between different profiles, but mostly debugging stuff, like DOM Inspector and Force RTL (with Bugzilla Tweaks on some of the profiles).
(In reply to comment #12)
> Well sure, but if opening the database and performing a few async queries on it
> takes long enough for you to think that it is staying open permanently (I guess
> that must be 30 seconds at least right?) then there is something wrong with how
> we're accessing the DB I think.

Well, not necessarily, because I have a background build job most of the times, and that really kills I/O performance on my system.  But the fact that we're pausing the initialization of the UI for _any_ kind of I/O (no matter how fast we think it is) is something which we should fix, I think.
Summary: Empty update extensions window when switching between builds → Default wizard page of update extensions window shown when switching between builds
Attached patch patch rev 1Splinter Review
This pushes off loading the list of add-ons until the checking for updates page is displayed, it should mean there is no delay between opening the UI and showing the correct page.
Assignee: nobody → dtownsend
Status: NEW → ASSIGNED
Attachment #479985 - Flags: review?(robert.bugzilla)
Oh, also re-enabled the browser chrome test of this which only appears to need a bump to the timeout.
Whiteboard: [has patch][needs review rs]
Attachment #479985 - Flags: review?(robert.bugzilla) → review+
Whiteboard: [has patch][needs review rs] → [has patch]
Landed: http://hg.mozilla.org/mozilla-central/rev/8d543ba00ed1
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Flags: in-testsuite-
Flags: in-litmus-
Resolution: --- → FIXED
Whiteboard: [has patch]
Target Milestone: --- → mozilla2.0b8
OK, I found more information about this.  I just caught it under the debugger, and I can confirm that it's not just the slowness problem, the wizard page just remains the same no matter how long I wait (will post a screenshot).

Here's what I see on the console (note the JS errors) before clicking OK:

pldhash: for the table at address 0xb485d8, the given entrySize of 48 probably favors chaining over double hashing.
WARNING: Ignoring duplicate observer.: file /Users/ehsanakhgari/moz/src/modules/libpref/src/nsPrefBranch.cpp, line 630
WARNING: 1 sort operation has occurred for the SQL statement '0x17b0ed48'.  See https://developer.mozilla.org/En/Storage/Warnings details.: file /Users/ehsanakhgari/moz/src/storage/src/mozStoragePrivateHelpers.cpp, line 138
WARNING: dependent window created without a parent: file /Users/ehsanakhgari/moz/src/toolkit/components/startup/src/nsAppStartup.cpp, line 465
pldhash: for the table at address 0x1234e68, the given entrySize of 48 probably favors chaining over double hashing.
++DOCSHELL 0x1234e00 == 1
++DOMWINDOW == 1 (0x17b599b8) [serial = 1] [outer = 0x0]
pldhash: for the table at address 0x17b5a870, the given entrySize of 48 probably favors chaining over double hashing.
WARNING: Subdocument container has no content: file /Users/ehsanakhgari/moz/src/layout/base/nsDocumentViewer.cpp, line 2403
WARNING: Context has no global.: file /Users/ehsanakhgari/moz/src/dom/base/nsJSEnvironment.cpp, line 2410
++DOMWINDOW == 2 (0xd832c8) [serial = 2] [outer = 0x17b59980]
WARNING: NS_ENSURE_TRUE(sf) failed: file /Users/ehsanakhgari/moz/src/docshell/base/nsDocShell.cpp, line 4913
WARNING: NS_ENSURE_TRUE(sf) failed: file /Users/ehsanakhgari/moz/src/docshell/base/nsDocShell.cpp, line 4913
WARNING: Subdocument container has no content: file /Users/ehsanakhgari/moz/src/layout/base/nsDocumentViewer.cpp, line 2403
WARNING: Unable to retrieve pref: plugins.unloadASAP: file /Users/ehsanakhgari/moz/src/modules/plugin/base/src/nsPluginHost.cpp, line 316
[loaded plugin /Library/Internet Plug-Ins/QuickTime Plugin.plugin]
WARNING: Unable to retrieve pref: plugins.unloadASAP: file /Users/ehsanakhgari/moz/src/modules/plugin/base/src/nsPluginHost.cpp, line 316
JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line 5: reference to undefined property Components.interfaces.nsIExtensionManager
JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line 6: reference to undefined property Components.interfaces.nsIUpdateItem
JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line 7: reference to undefined property Components.interfaces.nsIAddonUpdateCheckListener
JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line 29: reference to undefined property Components.classes['@mozilla.org/extensions/manager;1']
JavaScript error: chrome://mozapps/content/extensions/update.js, line 29: Components.classes['@mozilla.org/extensions/manager;1'] is undefined

I don't see anything strange after clicking OK.

Here's my about:support:



  Application Basics

        Name
        Firefox

        Version
        4.0b7pre

        Profile Directory

          Show in Finder

        Enabled Plugins

          about:plugins

        Build Configuration

          about:buildconfig

  Extensions

        Name

        Version

        Enabled

        ID

        MeasureIt
        0.4
        true
        {75CEEE46-9B64-46f8-94BF-54012DE155F0}

        DOM Inspector
        2.0.8
        true
        inspector@mozilla.org

  Modified Preferences

      Name

      Value

        browser.places.importBookmarksHTML
        false

        browser.places.smartBookmarksVersion
        2

        browser.startup.homepage_override.buildID
        20101006140636

        browser.startup.homepage_override.mstone
        rv:2.0b7pre

        extensions.checkCompatibility.4.0b
        false

        extensions.lastAppVersion
        4.0b7pre

        network.cookie.prefsMigrated
        true

        places.history.expiration.transient_current_max_pages
        120795

        print.macosx.pagesetup-2
        PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VO…

        print.print_bgcolor
        false

        print.print_bgimages
        false

        print.print_command

        print.print_downloadfonts
        false

        print.print_evenpages
        true

        print.print_in_color
        true

        print.print_margin_bottom
        0.5

        print.print_margin_left
        0.5

        print.print_margin_right
        0.5

        print.print_margin_top
        0.5

        print.print_oddpages
        true

        print.print_orientation
        0

        print.print_page_delay
        50

        print.print_paper_data
        0

        print.print_paper_height
        11.00

        print.print_paper_size_type
        1

        print.print_paper_size_unit
        0

        print.print_paper_width
        8.50

        print.print_printer

        print.print_reversed
        false

        print.print_scaling
        1.00

        print.print_shrink_to_fit
        true

        print.print_to_file
        false

        print.print_unwriteable_margin_bottom
        56

        print.print_unwriteable_margin_left
        25

        print.print_unwriteable_margin_right
        25

        print.print_unwriteable_margin_top
        25

        privacy.sanitize.migrateFx3Prefs
        true

  Graphics

        Direct2D Enabled
        false

I'm running a rather old build from http://hg.mozilla.org/mozilla-central/rev/33ff08c153d4.  I'm not sure if the errors I saw on the console are covered by your patch or not, but I thought it's safer to reopen this bug since I got the impression that your patch only addresses the slowness part...
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Well, I was about to post another screenshot, but then I realized that there's nothing different than the previous one that I have attached.
(In reply to comment #19)
> JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line
> 5: reference to undefined property Components.interfaces.nsIExtensionManager
> JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line
> 6: reference to undefined property Components.interfaces.nsIUpdateItem
> JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line
> 7: reference to undefined property
> Components.interfaces.nsIAddonUpdateCheckListener
> JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line
> 29: reference to undefined property
> Components.classes['@mozilla.org/extensions/manager;1']
> JavaScript error: chrome://mozapps/content/extensions/update.js, line 29:
> Components.classes['@mozilla.org/extensions/manager;1'] is undefined

> I'm running a rather old build from
> http://hg.mozilla.org/mozilla-central/rev/33ff08c153d4.  I'm not sure if the
> errors I saw on the console are covered by your patch or not, but I thought
> it's safer to reopen this bug since I got the impression that your patch only
> addresses the slowness part...

Ok, so you are running a build from August 16th? That is before we upgraded the compatibility UI to work with the new API (bug 557956) so it is not surprising at all that it is broken. What is surprising is that it is appearing at all since before that bug landed we wouldn't attempt to open it anywhere. I wonder though. Any chance the components directory of the build you are running contains nsExtensionManager.js?

Seeing the stacks (JS too if possible, nor sure there will be one though) for when the UI is open might shed some light though tbh I'm not sure how worth it is trying to figure this out
(In reply to comment #21)
> (In reply to comment #19)
> > JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line
> > 5: reference to undefined property Components.interfaces.nsIExtensionManager
> > JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line
> > 6: reference to undefined property Components.interfaces.nsIUpdateItem
> > JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line
> > 7: reference to undefined property
> > Components.interfaces.nsIAddonUpdateCheckListener
> > JavaScript strict warning: chrome://mozapps/content/extensions/update.js, line
> > 29: reference to undefined property
> > Components.classes['@mozilla.org/extensions/manager;1']
> > JavaScript error: chrome://mozapps/content/extensions/update.js, line 29:
> > Components.classes['@mozilla.org/extensions/manager;1'] is undefined
> 
> > I'm running a rather old build from
> > http://hg.mozilla.org/mozilla-central/rev/33ff08c153d4.  I'm not sure if the
> > errors I saw on the console are covered by your patch or not, but I thought
> > it's safer to reopen this bug since I got the impression that your patch only
> > addresses the slowness part...
> 
> Ok, so you are running a build from August 16th? That is before we upgraded the
> compatibility UI to work with the new API (bug 557956) so it is not surprising
> at all that it is broken. What is surprising is that it is appearing at all
> since before that bug landed we wouldn't attempt to open it anywhere.

Well, I saw this dialog on a daily basis for as long as I can remember on two separate machines...

> I wonder
> though. Any chance the components directory of the build you are running
> contains nsExtensionManager.js?

I just checked, and that file doesn't exist in the components directory on that machine.

> Seeing the stacks (JS too if possible, nor sure there will be one though) for
> when the UI is open might shed some light though tbh I'm not sure how worth it
> is trying to figure this out

Unfortunately I dismissed the dialog after posting my comments, but I'll make sure to include the stacks if I see this again.

I kind of get the impression that we might be discussing a moot issue here.  So, how do you feel about us closing this bug again, and me reopening it if I see it on newer builds again?  (I must say that I used to see this problem a lot, and it might have just been before bug 557956; and I don't see it all that often any more, that's why I think we may be discussing a moot issue.)
Seems reasonable, don't think we would block on an issue that is only reproducable in older builds even if we couldn't pinpoint exactly why it was happening.
Status: REOPENED → RESOLVED
Closed: 12 years ago12 years ago
Resolution: --- → FIXED
Yeah, this problem is clearly fixed in latest Minefield builds like Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0b8pre) Gecko/20101015 Firefox/4.0b8pre. The dummy page doesn't appear anymore.
Status: RESOLVED → VERIFIED
Hardware: x86 → All
Target Milestone: mozilla2.0b8 → mozilla2.0b7
You need to log in before you can comment on or make changes to this bug.