Closed Bug 1253957 Opened 8 years ago Closed 8 years ago

[e10s] test_bug1165981.html permafails on Win64 with e10s enabled

Categories

(Core Graveyard :: Plug-ins, defect)

x86_64
Windows 8
defect
Not set
normal

Tracking

(e10s+, firefox47 affected)

RESOLVED FIXED
Tracking Status
e10s + ---
firefox47 --- affected

People

(Reporter: RyanVM, Assigned: qdot)

References

(Blocks 1 open bug)

Details

(Keywords: assertion)

Attachments

(2 files)

Attached image screenshot
Both of these tests are annotated to only be run on Win64, not sure if the e10s case is supposed to work or not.

https://treeherder.mozilla.org/logviewer.html#?job_id=17670337&repo=try

09:13:18     INFO -  161 INFO TEST-START | dom/plugins/test/mochitest/test_bug1165981.html
09:13:18     INFO -  [NPAPI 2704] WARNING: pipe error: 109: file c:/builds/moz2_slave/try-w64-0000000000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 333
09:13:18     INFO -  [NPAPI 2704] WARNING: pipe error: 109: file c:/builds/moz2_slave/try-w64-0000000000000000000000/build/src/ipc/chromium/src/chrome/common/ipc_channel_win.cc, line 333
09:13:18     INFO -  TEST-INFO | started process screenshot
09:13:19     INFO -  TEST-INFO | screenshot: exit 0
09:13:19     INFO -  162 INFO TEST-PASS | dom/plugins/test/mochitest/test_bug1165981.html | Should find allowed test flash plugin
09:13:19     INFO -  163 INFO TEST-PASS | dom/plugins/test/mochitest/test_bug1165981.html | Should find allowed test silverlight plugin
09:13:19     INFO -  164 INFO TEST-PASS | dom/plugins/test/mochitest/test_bug1165981.html | Should not find disallowed plugin
09:13:19     INFO -  165 INFO TEST-PASS | dom/plugins/test/mochitest/test_bug1165981.html | Should be able to call a function provided by the plugin
09:13:19     INFO -  166 INFO TEST-UNEXPECTED-FAIL | dom/plugins/test/mochitest/test_bug1165981.html | uncaught exception - TypeError: pluginElement.identifierToStringTest is not a function at http://mochi.test:8888/tests/dom/plugins/test/mochitest/test_bug1165981.html:44
09:13:19     INFO -      simpletestOnerror@SimpleTest/SimpleTest.js:1543:11
09:13:19     INFO -      OnErrorEventHandlerNonNull*@SimpleTest/SimpleTest.js:1530:1
09:13:19     INFO -  JavaScript error: http://mochi.test:8888/tests/dom/plugins/test/mochitest/test_bug1165981.html, line 44: TypeError: pluginElement.identifierToStringTest is not a function
09:13:19     INFO -  MEMORY STAT | vsize 431MB | vsizeMaxContiguous 4753584MB | residentFast 99MB | heapAllocated 15MB
09:13:19     INFO -  167 INFO TEST-OK | dom/plugins/test/mochitest/test_bug1165981.html | took 399ms

09:14:01     INFO -  298 INFO TEST-START | dom/plugins/test/mochitest/test_windowless_flash.html
09:14:01     INFO -  Not taking screenshot here: see the one that was previously logged
09:14:01     INFO -  299 INFO TEST-UNEXPECTED-FAIL | dom/plugins/test/mochitest/test_windowless_flash.html | Flash is always windowless mode even if wmode=window - got true, expected false
09:14:01     INFO -      SimpleTest.is@SimpleTest/SimpleTest.js:267:5
09:14:01     INFO -      runTests@dom/plugins/test/mochitest/test_windowless_flash.html:18:5
09:14:01     INFO -      onload@dom/plugins/test/mochitest/test_windowless_flash.html:1:1
09:14:01     INFO -  300 INFO TEST-PASS | dom/plugins/test/mochitest/test_windowless_flash.html | Flash is always windowless mode even if wmode=anything
09:14:01     INFO -  301 INFO TEST-PASS | dom/plugins/test/mochitest/test_windowless_flash.html | Flash is always windowless mode even if no wmode
09:14:01     INFO -  MEMORY STAT | vsize 515MB | vsizeMaxContiguous 4709140MB | residentFast 143MB | heapAllocated 29MB
09:14:01     INFO -  302 INFO TEST-OK | dom/plugins/test/mochitest/test_windowless_flash.html | took 97ms
Debug builds hit the following assert during test_windowless_flash.html as well:

09:22:21     INFO -  [Child 920] ###!!! ASSERTION: Expected matching plugin instance: 'parentInstance', file c:/builds/moz2_slave/try-w64-d-00000000000000000000/build/src/dom/ipc/ContentChild.cpp, line 3082
09:22:37     INFO -  #01: mozilla::dom::PContentChild::OnMessageReceived(IPC::Message const &) [obj-firefox/ipc/ipdl/PContentChild.cpp:8031]
09:22:37     INFO -  #02: mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const &) [ipc/glue/MessageChannel.cpp:1455]
09:22:37     INFO -  #03: mozilla::ipc::MessageChannel::DispatchMessageW(IPC::Message const &) [ipc/glue/MessageChannel.cpp:1392]
09:22:37     INFO -  #04: mozilla::ipc::MessageChannel::OnMaybeDequeueOne() [ipc/glue/MessageChannel.cpp:1359]
09:22:37     INFO -  #05: RunnableMethod<mozilla::ipc::MessageChannel,bool ( mozilla::ipc::MessageChannel::*)(void),mozilla::Tuple<> >::Run() [ipc/chromium/src/base/task.h:308]
09:22:37     INFO -  #06: MessageLoop::RunTask(Task *) [ipc/chromium/src/base/message_loop.cc:365]
09:22:37     INFO -  #07: MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const &) [ipc/chromium/src/base/message_loop.cc:375]
09:22:37     INFO -  #08: MessageLoop::DoWork() [ipc/chromium/src/base/message_loop.cc:459]
09:22:37     INFO -  #09: mozilla::ipc::DoWorkRunnable::Run() [ipc/glue/MessagePump.cpp:221]
09:22:37     INFO -  #10: nsThread::ProcessNextEvent(bool,bool *) [xpcom/threads/nsThread.cpp:994]
09:22:37     INFO -  #11: NS_ProcessNextEvent(nsIThread *,bool) [xpcom/glue/nsThreadUtils.cpp:297]
09:22:37     INFO -  #12: mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate *) [ipc/glue/MessagePump.cpp:95]
09:22:37     INFO -  #13: mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate *) [ipc/glue/MessagePump.cpp:289]
09:22:37     INFO -  #14: MessageLoop::RunHandler() [ipc/chromium/src/base/message_loop.cc:228]
09:22:37     INFO -  #15: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:202]
09:22:37     INFO -  #16: nsBaseAppShell::Run() [widget/nsBaseAppShell.cpp:158]
09:22:37     INFO -  #17: nsAppShell::Run() [widget/windows/nsAppShell.cpp:259]
09:22:37     INFO -  #18: XRE_RunAppShell [toolkit/xre/nsEmbedFunctions.cpp:786]
09:22:37     INFO -  #19: mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate *) [ipc/glue/MessagePump.cpp:259]
09:22:37     INFO -  #20: MessageLoop::RunHandler() [ipc/chromium/src/base/message_loop.cc:228]
09:22:37     INFO -  #21: MessageLoop::Run() [ipc/chromium/src/base/message_loop.cc:202]
09:22:37     INFO -  #22: XRE_InitChildProcess [toolkit/xre/nsEmbedFunctions.cpp:626]
09:22:37     INFO -  #23: content_process_main(int,char * * const) [ipc/contentproc/plugin-container.cpp:238]
09:22:37     INFO -  #24: wmain [toolkit/xre/nsWindowsWMain.cpp:138]
09:22:37     INFO -  #25: __tmainCRTStartup [f:/dd/vctools/crt/crtw32/startup/crt0.c:255]
09:22:37     INFO -  #26: KERNEL32.DLL + 0x167e
09:22:37     INFO -  #27: ntdll.dll + 0x1c3f1
Keywords: assertion
Kyle can you help with this?
Flags: needinfo?(kyle)
Win10 is also affected, so I'm guessing it's a more-generic Win64+e10s issue.
Summary: [e10s] test_bug1165981.html and test_windowless_flash.html are permafail on Win8 x64 with e10s enabled → [e10s] test_bug1165981.html and test_windowless_flash.html are permafail on Win64 with e10s enabled
Keywords: leave-open
Yeah, building for Win10 x64 now, will see if I can repro and fix.
Assignee: nobody → kyle
Flags: needinfo?(kyle)
For test_bug1165981.html at least, it looks like SetTestPluginEnabledState isn't doing anything for the silverlight plugin for e10s. The plugins.clicktoplay pref is set to true by default, if I set it to false and run the test, everything passes. However, the fact that SetTestPlugingEnabledState doesn't fix that by setting silverlight enabled is worrying.
For test_windowless_flash.html, it looks like mSandboxLevel is 0 in PluginInstanceParent when the mochitest is run, so since the sandbox level is not >= 2, we don't actually set windowless? ni?'ing owner of bug 1201904, where this test came in, 'cause I'm not real sure how IME works.
Flags: needinfo?(m_kato)
Ok, the test for bug 1165981 had a race issue. While SetTestPluginEnabled is a synchronous IPDL call, it ends in an asynchronous plugin-enabled state update from the parent to the child process. Since that call may not complete before we start loading the page, this will cause the test to fail intermittently, or now since something sped up (yay?), constantly.

Solution is to delay adding the needed object nodes until after onLoad(), so we make sure the enabled call has completed. Doing this, the test passes.
Running this through try for verification, then will put in for review. May split this into 2 bugs too.

https://treeherder.mozilla.org/#/jobs?repo=try&revision=4c89e29a5ce2
(In reply to Kyle Machulis [:kmachulis] [:qdot] from comment #8)
> For test_windowless_flash.html, it looks like mSandboxLevel is 0 in
> PluginInstanceParent when the mochitest is run, so since the sandbox level
> is not >= 2, we don't actually set windowless? ni?'ing owner of bug 1201904,
> where this test came in, 'cause I'm not real sure how IME works.

No, if sandbox level is 0 or 1, it doesn't set windowless.  But by bug 1248821, I will always set window less on Win64.

Humm, why does mochitest on e10s use sandbox level is 0?
Flags: needinfo?(m_kato)
Attachment #8733155 - Flags: review?(benjamin)
Attachment #8733155 - Flags: review?(benjamin) → review+
Ok, Gonna land this patch and split the windowless_flash bug into a new bug so this can be closed.
Summary: [e10s] test_bug1165981.html and test_windowless_flash.html are permafail on Win64 with e10s enabled → [e10s] test_bug1165981.html permafails on Win64 with e10s enabled
Closing as revolved fixed since the windowless issue was moved into another bug (sorry, forgot to remove the leave-open when changing it)
Status: NEW → RESOLVED
Closed: 8 years ago
Keywords: leave-open
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.