Closed Bug 906578 Opened 8 years ago Closed 8 years ago

Functions in |new Error().stack| are sometimes incorrectly listed as <TOP_LEVEL> in browser_windowopen_reflows.js

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox26 --- affected

People

(Reporter: MattN, Unassigned)

References

()

Details

(Keywords: intermittent-failure, regression)

Attachments

(1 file)

We have a browser-chrome mochitest on the UX branch which checks the JS stack when there is an uninterruptible reflow and compares that to a list of expected reflows[1]. Some functions from |new Error().stack| now appear as <TOP_LEVEL> when they aren't.  An examples is _delayedStartup[2] in browser.js which always used to appear with the name gBrowserInit._delayedStartup in the stack but now appears with no name.

This started Friday 2013-08-16 on the UX branch with the following push: https://tbpl.mozilla.org/?tree=UX&rev=284e3eeeb60a
It's possible that this was an earlier regression since it's intermittent. It's very likely in that push though since it fails over half of the time AFAICT. This seems to affect all platforms (debug and opt) intermittently[3][4][5][6][7].

[1] https://hg.mozilla.org/projects/ux/file/19dffe1e6a1d/browser/base/content/test/browser_windowopen_reflows.js
[2] https://mxr.mozilla.org/mozilla-central/source/browser/base/content/browser.js?rev=636e3b9d1f72#954
[3] https://tbpl.mozilla.org/?tree=UX&rev=7e0adf1211a7
[4] https://tbpl.mozilla.org/?tree=UX&rev=af9924226bb0
[5] https://tbpl.mozilla.org/?tree=UX&rev=e7977c9175f2
[6] https://tbpl.mozilla.org/?tree=UX&rev=f1b79ee158c9
[7] https://tbpl.mozilla.org/?tree=UX&rev=19dffe1e6a1d
https://tbpl.mozilla.org/php/getParsedLog.php?id=26693156&tree=UX#error1

19:07:02  WARNING -  TEST-UNEXPECTED-FAIL | chrome://mochitests/content/browser/browser/base/content/test/browser_windowopen_reflows.js | unexpected uninterruptible reflow 'loadTabs@chrome://browser/content/tabbrowser.xml|loadOneOrMoreURIs@chrome://browser/content/browser.js|@chrome://browser/content/browser.js|'
19:07:02     INFO -  Stack trace:
19:07:02     INFO -      JS frame :: chrome://mochitests/content/browser/browser/base/content/test/browser_windowopen_reflows.js :: observer.reflow :: line 90
19:07:02     INFO -      JS frame :: chrome://browser/content/tabbrowser.xml :: loadTabs :: line 1298
19:07:02     INFO -      JS frame :: chrome://browser/content/browser.js :: loadOneOrMoreURIs :: line 10365
19:07:02     INFO -      JS frame :: chrome://browser/content/browser.js :: <TOP_LEVEL> :: line 9641
19:07:02     INFO -      native frame :: <unknown filename> :: <TOP_LEVEL> :: line 0

The <TOP_LEVEL> here should have been gBrowserInit._delayedStartup.
I pushed a workaround for the test so it accepts the lack of a function name so we don't have an almost perma-failure on UX:
https://hg.mozilla.org/projects/ux/rev/031395261220
(In reply to TBPL Robot from comment #10)
> Gijs
> https://tbpl.mozilla.org/php/getParsedLog.php?id=28154284&tree=UX
> Rev5 MacOSX Mountain Lion 10.8 ux debug test mochitest-browser-chrome on
> 2013-09-20 06:27:23
> revision: 2cdad19e044f
> slave: talos-mtnlion-r5-055
> 
> TEST-UNEXPECTED-FAIL |
> chrome://mochitests/content/browser/browser/base/content/test/general/
> browser_windowopen_reflows.js | unexpected uninterruptible reflow
> 'ssi_getWindowDimension@resource:///modules/sessionstore/SessionStore.jsm:
> 3338|@resource:///modules/sessionstore/SessionStore.jsm:
> 1946|ssi_updateWindowFeatures@resource:///modules/sessionstore/SessionStore.
> jsm:1947|ssi_collectWindowData@resource:///modules/sessionstore/SessionStore.
> jsm:2093|@resource:///modules/sessionstore/SessionStore.jsm:
> 1981|ssi_forEachBrowserWindow@resource:///modules/sessionstore/SessionStore.
> jsm:3179|@resource:///modules/sessionstore/SessionStore.jsm:1977|@resource://
> /modules/sessionstore/SessionStore.jsm:275|@resource://app/modules/
> sessionstore/SessionSaver.jsm:194|@resource://app/modules/sessionstore/
> SessionSaver.jsm:249|@resource://gre/modules/Promise.jsm:572|@resource://gre/
> modules/Promise.jsm:354|'

Actually, this seems like something new. Tim and/or Matt, any idea?
Flags: needinfo?(ttaubert)
Flags: needinfo?(mnoorenberghe+bmo)
Yeah, the underlying SessionStore code changed a lot lately. This was addressed here:

https://hg.mozilla.org/mozilla-central/rev/103d76816075
Flags: needinfo?(ttaubert)
Is this bug caused by bug 862627 and basically the same as bug 914985?
(In reply to Tim Taubert [:ttaubert] from comment #13)
> Is this bug caused by bug 862627 and basically the same as bug 914985?

I don't know, but I filed bug 919945. :-)
Flags: needinfo?(mnoorenberghe+bmo)
Closing inactive keywords:intermittent-failure bugs where the TBPLbot has previously commented and the test isn't marked as disabled; filter on orange-cleanup-201401.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.