Open Bug 1255284 Opened 8 years ago Updated 2 years ago

Intermittent test_bug484459.xhtml,test_bug484459.xul | uncaught exception - ReferenceError: x is not defined at chrome://mochitests/content/chrome/js/xpconnect/tests/chrome/test_bug484459.xul:32

Categories

(Core :: XPConnect, defect, P5)

defect

Tracking

()

Tracking Status
firefox48 --- wontfix
firefox49 --- affected
firefox50 --- unaffected

People

(Reporter: philor, Unassigned)

References

Details

(Keywords: intermittent-failure, leave-open, Whiteboard: [stockwell disabled])

Bulk assigning P3 to all open intermittent bugs without a priority set in Firefox components per bug 1298978.
Priority: -- → P3
31 failures in the last week- maybe 1 day of high volume, will keep an eye on this.
Whiteboard: [stockwell needswork]
wow, this really increased, I see 100 instance in the last week. primarily on linux opt.

here is a recent log:
https://treeherder.mozilla.org/logviewer.html#?repo=autoland&job_id=109491976&lineNumber=2095

and related data from the log:
task 2017-06-23T07:36:59.964425Z] 07:36:59     INFO - TEST-START | js/xpconnect/tests/chrome/test_bug484459.xul
[task 2017-06-23T07:37:00.013239Z] 07:37:00     INFO - TEST-INFO | started process screentopng
[task 2017-06-23T07:37:00.457637Z] 07:37:00     INFO - TEST-INFO | screentopng: exit 0
[task 2017-06-23T07:37:00.460158Z] 07:37:00     INFO - Buffered messages logged at 07:37:00
[task 2017-06-23T07:37:00.460238Z] 07:37:00     INFO - TEST-PASS | js/xpconnect/tests/chrome/test_bug484459.xul | location.href is set properly 
[task 2017-06-23T07:37:00.460310Z] 07:37:00     INFO - TEST-PASS | js/xpconnect/tests/chrome/test_bug484459.xul | contents of w.location are correct 
[task 2017-06-23T07:37:00.461053Z] 07:37:00     INFO - Buffered messages finished
[task 2017-06-23T07:37:00.462062Z] 07:37:00     INFO - TEST-UNEXPECTED-FAIL | js/xpconnect/tests/chrome/test_bug484459.xul | uncaught exception - ReferenceError: x is not defined at @chrome://mochitests/content/chrome/js/xpconnect/tests/chrome/test_bug484459.xul:33:1
[task 2017-06-23T07:37:00.462812Z] 07:37:00     INFO - 
[task 2017-06-23T07:37:00.463504Z] 07:37:00     INFO - simpletestOnerror@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1652:11
[task 2017-06-23T07:37:00.464252Z] 07:37:00     INFO - OnErrorEventHandlerNonNull*@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:1632:1
[task 2017-06-23T07:37:00.465136Z] 07:37:00     INFO - GECKO(1297) | JavaScript error: chrome://mochitests/content/chrome/js/xpconnect/tests/chrome/test_bug484459.xul, line 33: ReferenceError: x is not defined
[task 2017-06-23T07:37:00.466139Z] 07:37:00     INFO - GECKO(1297) | MEMORY STAT | vsize 799MB | residentFast 252MB | heapAllocated 106MB
[task 2017-06-23T07:37:00.468278Z] 07:37:00     INFO - TEST-OK | js/xpconnect/tests/chrome/test_bug484459.xul | took 62ms


My apologies for not detecting this sustained failure rate a couple days ago.


:overholt- can you help find someone from the xpconnect team to fix this in the next week?
Flags: needinfo?(overholt)
I can take a look. I did a Google search on Bugzilla for "iframe onload race", which turned up bug 823120, which sounds like a similar issue, so I can try cargo culting the fix.
Assignee: nobody → continuation
Flags: needinfo?(overholt)
Thanks, mccr8!
I don't really know anything about what blocks or doesn't during loading, but it looked like maybe there was some kind of race between the iframe src and the onload running, but inserting a busy loop before the test runs "var x = 3" doesn't seem to trigger the issue: the onload runs after the src finishes.

I can't see what other race there might be, unless the sandbox goes away somehow? But again, I don't know how that would happen. I tried inserting a bunch of forceGC and forceCC before we run the onload, but that didn't help.

Do you have any ideas, Boris, as the author of this test from 2009? ;)

The actual patch for bug 484459 added a sandbox_convert method to the Sandbox JSClass, and I don't see anything analogous to that now, so maybe this test isn't useful?
Flags: needinfo?(bzbarsky)
This is quite bizarre.  

The load event for the iframe should certainly fire after the script inside it ran.  We _could_ have a race wherein this happens before the <script> in the outer page runs, but then your failure would be "go is not defined"; that's not what's happening here.

There's no reason the sandbox would go away; it's all rooted by local vars at the point when we do the evalInSandbox call.

We could try to add some diagnostic bits here: add:

  is(w.x, 3, "Unexpected value for x");

right after we set "w".  That will at least tell us whether the problem is that "w.x" is not set correctly or whether it's something about the sandbox bits that's not picking it up properly.

> so maybe this test isn't useful?

Well, it' a basic smoketest for "can run stuff in a sandbox".  The original bug there involved us not handling the "sandbox" arg to "evalInSandbox" properly, whatever the internal reasons were.
Flags: needinfo?(bzbarsky)
:mccr8, I know we will be at a work week, but this is a very high failure rate- can you fix this?  I am doing a pass on Wednesday to disable many tests that are high frequency I can disable this then if you would prefer.
Flags: needinfo?(continuation)
Yeah, you should go ahead and disable it on Linux opt or whatever is affected. I was hoping it would be an easy fix, but it isn't clear what is happening. I also was unable to repro locally.
Flags: needinfo?(continuation)
Perhaps worth noting, this test was already skipped on windows and osx, for bug 1131110.
Pushed by gbrown@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/070644025bdd
Skip test_bug484459.xul on linux-opt for intermittent failures; r=me,test-only
(In reply to Geoff Brown [:gbrown] from comment #39)
> Perhaps worth noting, this test was already skipped on windows and osx, for
> bug 1131110.

Ah, good to know. Maybe I can reproduce it on OSX more easily.
See Also: → 1131110
Keywords: leave-open
Whiteboard: [stockwell needswork] → [stockwell disabled]
I tried using sandboxPrototype instead of setting __proto__ in the hope that would help, but it did not.
Assignee: continuation → nobody
Priority: P3 → P5
Summary: Intermittent test_bug484459.xul | uncaught exception - ReferenceError: x is not defined at chrome://mochitests/content/chrome/js/xpconnect/tests/chrome/test_bug484459.xul:32 → Intermittent test_bug484459.xhtml,test_bug484459.xul | uncaught exception - ReferenceError: x is not defined at chrome://mochitests/content/chrome/js/xpconnect/tests/chrome/test_bug484459.xul:32
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.