Closed Bug 928678 Opened 11 years ago Closed 9 years ago

Intermittent test_iframe_sandbox_general.html | Test timed out

Categories

(Core :: Security, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox32 --- fixed
firefox33 --- fixed
firefox34 --- affected
firefox-esr24 --- unaffected
firefox-esr31 --- fixed
b2g-v1.3 --- fixed
b2g-v1.3T --- fixed
b2g-v1.4 --- fixed
b2g-v2.0 --- fixed
b2g-v2.1 --- fixed

People

(Reporter: philor, Assigned: bobowen)

References

()

Details

(Keywords: intermittent-failure)

Attachments

(2 files, 1 obsolete file)

https://tbpl.mozilla.org/php/getParsedLog.php?id=29385729&tree=Mozilla-Inbound
Rev4 MacOSX Snow Leopard 10.6 mozilla-inbound opt test mochitest-1 on 2013-10-19 19:06:40 PDT for push cbf2fa780040
slave: talos-r4-snow-004

19:19:50     INFO -  145384 INFO TEST-START | /tests/content/html/content/test/test_iframe_sandbox_general.html
19:19:50     INFO -  145385 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | an iframe sandboxed without allow-scripts should execute script in a javascript URL in its src attribute
19:19:50     INFO -  145386 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | an iframe sandboxed with allow-scripts should execute script in a javascript URL in a newly set src attribute
19:19:50     INFO -  145387 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run <script src=...>
19:19:50     INFO -  145388 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run script from event listeners
19:19:50     INFO -  145389 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run inline scripts
19:19:50     INFO -  145390 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
19:19:50     INFO -  145391 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
19:19:50     INFO -  *** c_if3 has loaded
19:19:50     INFO -  145392 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | window.open threw a JS exception and was not allowed
19:19:50     INFO -  145393 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | window.showModalDialog threw a JS exception and was not allowed
19:19:50     INFO -  145394 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run script from javascript: URLs
19:19:50     INFO -  145395 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
19:19:50     INFO -  145396 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
19:19:50     INFO -  145397 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
19:19:50     INFO -  145398 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed without allow-same-origin should NOT be able to access indexedDB
19:19:50     INFO -  145399 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
19:19:50     INFO -  145400 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
19:19:50     INFO -  145401 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
19:19:50     INFO -  JavaScript error: http://mochi.test:8888/tests/SimpleTest/SimpleTest.js, line 23: Permission denied to access property 'TestRunner'
19:19:50     INFO -  145402 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-forms should be able to submit forms
19:19:50     INFO -  145403 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-same-origin SHOULD  be able to access indexedDB
19:22:47     INFO -  NOTE: child process received `Goodbye', closing down
(screenshot)
19:25:23     INFO -  145404 ERROR TEST-UNEXPECTED-FAIL | /tests/content/html/content/test/test_iframe_sandbox_general.html | Test timed out.
19:25:23     INFO -  145405 INFO TEST-END | /tests/content/html/content/test/test_iframe_sandbox_general.html | finished in 330666ms
What struck me in the log, is this line:
INFO -  JavaScript error: http://mochi.test:8888/tests/SimpleTest/SimpleTest.js, line 23: Permission denied to access property 'TestRunner'
That's basically this line, when SimpleTest.js just gets loaded:
var isPrimaryTestWindow = !!parent.TestRunner || isSingleTestRun;

I don't know why that's happening, but that might be the key to this timed out tests.
Although, I have to say, I also saw these errors locally happening, without the timed out error.
Attached patch 928678.diff (obsolete) — Splinter Review
Ok, this fixes the js error and is a correct fix anyway, because that file doesn't need SimpleTest.js, at all. And there was another file that used SimpleTest.js mistakenly.
I have no idea if it would fix this intermittent failure, though.
Assignee: nobody → martijn.martijn
Attachment #8468894 - Flags: review?(jmaher)
Comment on attachment 8468894 [details] [diff] [review]
928678.diff

Review of attachment 8468894 [details] [diff] [review]:
-----------------------------------------------------------------

nice fix.
Attachment #8468894 - Flags: review?(jmaher) → review+
https://hg.mozilla.org/mozilla-central/rev/7311c577ce24
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Unfortunately, it seems to be still happening :(
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Also, the intermittent failures only seem to happen on MacOSX Snow Leopard 10.6.
Attached patch 928678_2.diffSplinter Review
(In reply to Martijn Wargers [:mwargers] (QA) from comment #63)
> I looked at the last 3 logs, the stalling of the test seems to happening
> when the c_if3 iframe has loaded.

That doesn't seem to tell much, that one just happened to have a dump() call in it.

We should get the complete log when this failure is happening, so we would know which one of the subtests is not running.
Attachment #8468894 - Attachment is obsolete: true
Attachment #8472012 - Flags: review?(kwierso)
Target Milestone: mozilla34 → ---
From comment 68 failure:
1876 INFO TEST-START | /tests/content/html/content/test/test_iframe_sandbox_general.html
1877 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | an iframe sandboxed without allow-scripts should execute script in a javascript URL in its src attribute
1878 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | an iframe sandboxed with allow-scripts should execute script in a javascript URL in a newly set src attribute
1879 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run <script src=...>
1880 INFO *** c_if3 has loaded
1881 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | window.open threw a JS exception and was not allowed
1882 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | window.showModalDialog threw a JS exception and was not allowed
1883 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
1884 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run script from event listeners
1885 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run inline scripts
1886 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
1887 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run script from javascript: URLs
1888 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run <script src=...>
1889 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
1890 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed without allow-same-origin should NOT be able to access indexedDB
1891 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
1892 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
1893 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
1894 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
1895 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute
1896 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run script from event listeners
1897 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run inline scripts
1898 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-scripts should be able to run script from javascript: URLs
1899 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-forms should be able to submit forms
1900 INFO TEST-PASS | /tests/content/html/content/test/test_iframe_sandbox_general.html | documents sandboxed with allow-same-origin SHOULD  be able to access indexedDB
Those are 24 results, while normally there should be 28.

These 4 results don't seem to be running:
- a document sandboxed with allow-same-origin and allow-scripts should be same origin with its parent and able to run scripts regardless of what kind of whitespace was used in its sandbox attribute (there are 9 of them, 1 one of which doesn't run when this fails)
documents sandboxed with allow-same-origin SHOULD be able to access indexedDB
- a new iframe should have a sandbox attribute
- default sandbox attribute should be an empty string
- There are 27 general tests that should pass
It seems like the tests are stalling at this call:
http://mxr.mozilla.org/mozilla-central/source/content/html/content/test/test_iframe_sandbox_general.html?force=1#87
87   sendMouseEvent({type:'click'}, 'a_link', if_w);
That code tries to click a link inside an iframe that is 10px*10px, so the link is not visible.
But I guess that doesn't matter, because normally this doesn't seem to cause problems.
Normally when sendMouseEvent fails, you get an error message, but that is not to be found here.
Removing the senMouseEvent calls might fix these intermittent failures. Also note bug 1051783, where MacOsX 10.6 is constantly failing on a test with the use of sendMouseEvent.

But I guess this change is probably not acceptable, because it would change the test.

So perhaps this test should just be disabled for MacOsX 10.6 as was suggested for bug 1051783 in bug 1051783, comment 3?
In any case, I can't really work on this further, without access to a MacOSX 10.6 machine.
Attachment #8474310 - Flags: feedback?(ian.melven)
Hi Martijn,

Sorry been on PTO or would have responded more quickly.

Earlier this year I was looking to re-write the iframe sandbox tests, because of these timeouts.
While there had been other timeout issues in the past these problems on OSX seemed to start around the end of September last year.

In bug 885140 comment 86, I listed the other bugs and also pointed towards bug 921635 comment 47.
The tests were disabled for this bug and there was some thought that it was the loading of lots of quickly loading pages that was causing the problem.
Most of the iframe sandbox tests currently load lots of small pages in parallel, so they would also fit that theory.
What do you think?

My plan was to re-write the tests using the style I'd used for bug 785310.
These use a single window / iframe to run each of the tests in series, which is faster and involves fewer helper files. They have never had this timeout problem as far as I know.

Anyway, I'd re-written the navigation tests, but got stalled getting the reviews.
Then became too busy with other things, I might have a bit of time for this soon.
I'll try and get back to getting those reviewed and the others tests re-written.
Flags: needinfo?(martijn.martijn)
Bob, that sounds wonderful!
It might very well be that your description of tackling this could help. For me, it's just guessing what's going on here, since I'm unable to reproduce this (not having MacOSX 10.6).
Assignee: martijn.martijn → bobowencode
Flags: needinfo?(martijn.martijn)
Attachment #8474310 - Flags: feedback?(ian.melven)
(In reply to Martijn Wargers [:mwargers] (QA) from comment #74)
> Bob, that sounds wonderful!
> It might very well be that your description of tackling this could help. For
> me, it's just guessing what's going on here, since I'm unable to reproduce
> this (not having MacOSX 10.6).

Unfortunately I don't have OSX either, but I'm fairly hopeful that this approach will stop the timeouts.
Of course it won't fix the underlying problem that seemed to appear late September.

I'll get back onto getting reviews for bug 885140 first and then pick this one up.
I'm fairly sure that this is the next worst offender. :)
Status: REOPENED → RESOLVED
Closed: 10 years ago9 years ago
Resolution: --- → WORKSFORME
Removing leave-open keyword from resolved bugs, per :sylvestre.
Keywords: leave-open
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: