Skip to content

Instantly share code, notes, and snippets.

@jaredhirsch
Created August 10, 2017 16:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jaredhirsch/ce115cf59b852e365e982c1474dc99fd to your computer and use it in GitHub Desktop.
Save jaredhirsch/ce115cf59b852e365e982c1474dc99fd to your computer and use it in GitHub Desktop.
Screenshots - Bug 1387598 / Intermittent sessionrestore_no_auto_restore | application crashed [@ GetNameOperation]

I got pinged on bug 1387598, some Windows-only crashes in a Talos test that deliberately prevents the sessionstore-windows-restored event from firing. Screenshots 10.10 seemed to cause the regression. (As a reminder, 10.10 includes a fix to synchronize startup and shutdown, see discussion in screenshots pull request #3260.)

Looking at the Talos test definition on dxr, it appears that the test causes the event to never fire:

# inside mozilla-central/testing/talos/talos/test.py, revision 4c5fbf493763, line 181:

@register_test()
class sessionrestore_no_auto_restore(sessionrestore):
    """
    A start up test measuring the time it takes to load a sessionstore.js file.

    1. Set up Firefox to *not* restore automatically from sessionstore.js file.
    2. Launch Firefox.
    3. Measure the delta between firstPaint and sessionRestored.
    """
    preferences = {'browser.startup.page': 1}

I figured this was causing a crash because we assume, in our code, that the event always does fire, and we don't detach it (or resolve the promise chain) on shutdown if it doesn't fire.

However, when I asked about this in #teamaddons, both aswan and zombie thought that JS code shouldn't be able to cause a crash, even if an observer or promise was left dangling.

Pinged the bug to say I'm going to try to look deeper, and asked for help in #fx-team.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment