Closed
Bug 903834
Opened 11 years ago
Closed 11 years ago
Intermittent browser_tabview_bug590606.js | The currently selected tab should be the first tab in the groupItemOne - Got [object XULElement], expected [object XULElement]
Categories
(Firefox Graveyard :: Panorama, defect)
Tracking
(firefox25 wontfix, firefox26 fixed, firefox27 fixed, firefox-esr24 wontfix)
RESOLVED
FIXED
Firefox 27
People
(Reporter: ttaubert, Assigned: ttaubert)
References
(Depends on 1 open bug)
Details
(Keywords: intermittent-failure)
https://tbpl.mozilla.org/php/getParsedLog.php?id=26401397&tree=Mozilla-Central
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/components/tabview/test/browser_tabview_bug590606.js | The currently selected tab should be the first tab in the groupItemOne - Got [object XULElement], expected [object XULElement]
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/components/tabview/test/browser_tabview_bug590606.js | uncaught exception - NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS: '[JavaScript Error: "this.mCurrentBrowser is null" {file: "chrome://browser/content/tabbrowser.xml" line: 2731}]' when calling method: [nsIBrowserDOMWindow::contentWindow] at chrome://browser/content/browser.js:9501
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/components/tabview/test/browser_tabview_bug590606.js | uncaught exception - NS_ERROR_XPC_JAVASCRIPT_ERROR_WITH_DETAILS: '[JavaScript Error: "this.mCurrentBrowser is null" {file: "chrome://browser/content/tabbrowser.xml" line: 2731}]' when calling method: [nsIBrowserDOMWindow::contentWindow] at chrome://browser/content/browser.js:9501
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/components/tabview/test/browser_tabview_bug590606.js | uncaught exception - TypeError: oldBrowser is null at chrome://browser/content/tabbrowser.xml:1063
TypeError: profile is undefined: Sidebar.prototype<.getItemByProfile@resource://gre/modules/commonjs/toolkit/loader.js -> resource:///modules/devtools/profiler/sidebar.js:91
TypeError: this._tabs is null
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/devtools/webconsole/test/browser_webconsole_bug_597136_network_requests_from_chrome.js | no exception was thrown when sending a network request from a chrome window
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Tab had expected priority - Got 0, expected -10
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Tab had expected priority - Got 0, expected -10
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Tab had expected priority - Got 0, expected -10
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Tab had expected priority - Got 0, expected -10
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Tab had expected priority - Got 10, expected 0
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Tab had expected priority - Got 0, expected -10
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Tab had expected priority - Got 10, expected 0
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Can adjust priority beyond 'lowest' - Got 20, expected 30
TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/modules/test/browser_NetworkPrioritizer.js | Can adjust priority beyond 'highest' - Got -20, expected -30
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Comment hidden (Legacy TBPL/Treeherder Robot) |
Assignee | ||
Comment 25•11 years ago
|
||
I have no clue what happens here. I looked at the code and I don't see a way how we could end up with mCurrentBrowser being null. I tried to run tests for a while on my Mac and on my Windows machine. I even downloaded the exact PGO build [1] from the last Aurora failure [2] (comment #23) but couldn't get it to fail.
An interesting point is that all of the failures are on XP PGO. I also don't know a good owner for this as it's really not actionable at the moment. If only we had some kind of way to reproduce.
[1] http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-inbound-win32-pgo/1380049230/
[2] https://tbpl.mozilla.org/php/getParsedLog.php?id=28311772&full=1&branch=mozilla-inbound
Flags: needinfo?(ttaubert)
Assignee | ||
Comment 26•11 years ago
|
||
Pushed a patch with some debug output to try and requested a PGO build:
https://tbpl.mozilla.org/?tree=Try&rev=73b7687b2ba1
Let's see how that goes...
Assignee | ||
Comment 27•11 years ago
|
||
Great, at least on try it seems to be quite reproducible, using PGO builds. Here's a build log of a failure with some debug output. Still not entirely sure what's up but maybe I'll just push again after some investigation.
https://tbpl.mozilla.org/php/getParsedLog.php?id=28402137&tree=Try&full=1#error1
Looks like I'm owning this now :) FTR, it looks like that's not Panorama's failure but the tabbrowser somehow ends up in a state where it shouldn't be.
Assignee | ||
Comment 28•11 years ago
|
||
It looks like browser_tabview_bug588265.js somehow makes us null mCurrentBrowser here:
http://hg.mozilla.org/mozilla-central/annotate/e85b0372cece/browser/base/content/tabbrowser.xml#l2003
It looks we probably should rather fail instead of nulling mCurrentBrowser if that makes everything else fail?
Assignee | ||
Comment 29•11 years ago
|
||
Nulling mCurrentBrowser was introduced here:
http://hg.mozilla.org/mozilla-central/rev/79f0830a550c
Comment hidden (Legacy TBPL/Treeherder Robot) |
Assignee | ||
Comment 32•11 years ago
|
||
It seems that sometimes, _blurTab() does correctly set a new selected tab but for some reason updateCurrentBrowser() isn't executed immediately after. This would cause _endRemoveTab() to set mCurrentBrowser=null.
The log output [1] shows that updateCurrentBrowser() is not called.
[1] https://tbpl.mozilla.org/php/getParsedLog.php?id=28454037&tree=Try&full=1#error0
Assignee | ||
Comment 33•11 years ago
|
||
Another try push [1] with some more debug output tells:
gBrowser.selectedTab is set to a new tab that is != mCurrentTab. tabbox.selectedIndex however decides to do nothing as (this._selectedPanel == panel). According to the selected index the panel does not change. Weird.
[1] https://tbpl.mozilla.org/php/getParsedLog.php?id=28463747&tree=Try&full=1#error0
Assignee | ||
Comment 34•11 years ago
|
||
My assumption so far is that sometimes, when selecting a tab, the wrong panel is selected (one that is already selected) so that we don't fire a select event.
When setting the selected tab, getRelatedElement() looks for a tab panel with a matching ID and returns it. We do the following to assign panel IDs:
var uniqueId = "panel" + Date.now();
// or
var uniqueId = "panel" + Date.now() + position;
This doesn't seem very unique to me as we have other bugs that hint that Date.now() isn't really monotonic (bug 874847, also WinXP only) and it definitely can screw things up when the system clock changes.
Another weird thing here is that getRelatedElement() falls back to getting the tab panel with the same index as the tab when it doesn't find anything for a given idea. That's quite a bad idea though as tab indices != panel indices. After calling gBrowser.moveTabTo() the selectedIndex for tabs may be different than the one for panels.
I don't see a way how this could fail though. Maybe we should just return null when that happens - which might not be easy with the tabbox being a toolkit widget.
Assignee | ||
Comment 35•11 years ago
|
||
Yup, that's it \o/.
Assignee: nobody → ttaubert
Status: NEW → ASSIGNED
Assignee | ||
Comment 36•11 years ago
|
||
Fixed by bug 586153.
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Updated•11 years ago
|
Target Milestone: --- → Firefox 27
Comment 37•11 years ago
|
||
Bug 586153 uplifted to Aurora.
https://hg.mozilla.org/releases/mozilla-aurora/rev/75e1f0a7290c
status-firefox25:
--- → wontfix
status-firefox26:
--- → fixed
status-firefox27:
--- → fixed
status-firefox-esr24:
--- → wontfix
Comment hidden (Legacy TBPL/Treeherder Robot) |
Updated•8 years ago
|
Product: Firefox → Firefox Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•