Closed Bug 1428939 Opened 6 years ago Closed 5 years ago

Assertion failure: !existingExpandoObject, at /builds/worker/workspace/build/src/js/xpconnect/wrappers/XrayWrapper.cpp:1235

Categories

(Core :: XPConnect, defect)

59 Branch
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox59 --- affected

People

(Reporter: jkratzer, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(3 files, 2 obsolete files)

Attached file trigger.html (obsolete) —
Testcase found while fuzzing mozilla-central rev ca379fcca95b.  Testcase must be served up via a local webserver in order to reproduce the assertion.

Marking this SS just in case.

OS|Linux|0.0.0 Linux 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64
CPU|amd64|family 6 model 78 stepping 3|1
GPU|||
Crash|SIGSEGV|0x0|0
0|0|libxul.so|xpc::XrayTraits::attachExpandoObject|hg:hg.mozilla.org/mozilla-central:js/xpconnect/wrappers/XrayWrapper.cpp:ca379fcca95b|1226|0x18
0|1|libxul.so|xpc::XrayTraits::cloneExpandoChain|hg:hg.mozilla.org/mozilla-central:js/xpconnect/wrappers/XrayWrapper.cpp:ca379fcca95b|1333|0xb
0|2|libxul.so|xpc::TransplantObjectRetainingXrayExpandos|hg:hg.mozilla.org/mozilla-central:js/xpconnect/wrappers/WrapperFactory.cpp:ca379fcca95b|697|0x1e
0|3|libxul.so|mozilla::dom::ReparentWrapper|hg:hg.mozilla.org/mozilla-central:dom/bindings/BindingUtils.cpp:ca379fcca95b|2275|0x5
0|4|libxul.so|nsNodeUtils::CloneAndAdopt|hg:hg.mozilla.org/mozilla-central:dom/base/nsNodeUtils.cpp:ca379fcca95b|631|0x8
0|5|libxul.so|nsNodeUtils::CloneAndAdopt|hg:hg.mozilla.org/mozilla-central:dom/base/nsNodeUtils.cpp:ca379fcca95b|664|0x31
0|6|libxul.so|nsIDocument::AdoptNode|hg:hg.mozilla.org/mozilla-central:dom/base/nsNodeUtils.h:ca379fcca95b|220|0x5
0|7|libxul.so|AdoptNodeIntoOwnerDoc|hg:hg.mozilla.org/mozilla-central:dom/base/nsINode.cpp:ca379fcca95b|1542|0x5
0|8|libxul.so|nsINode::ReplaceOrInsertBefore|hg:hg.mozilla.org/mozilla-central:dom/base/nsINode.cpp:ca379fcca95b|2452|0x16
0|9|libxul.so|mozilla::dom::NodeBinding::appendChild|hg:hg.mozilla.org/mozilla-central:dom/base/nsINode.h:ca379fcca95b|1873|0x12
0|10|libxul.so|mozilla::dom::GenericBindingMethod|hg:hg.mozilla.org/mozilla-central:dom/bindings/BindingUtils.cpp:ca379fcca95b|3042|0x9
0|11|libxul.so|js::CallJSNative|hg:hg.mozilla.org/mozilla-central:js/src/jscntxtinlines.h:ca379fcca95b|291|0x6
0|12|libxul.so|js::InternalCallOrConstruct|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|473|0xf
0|13|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|522|0xd
0|14|libxul.so|js::Call|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|541|0x5
0|15|libxul.so|js::ForwardingProxyHandler::call|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Wrapper.cpp:ca379fcca95b|176|0x9
0|16|libxul.so|js::CrossCompartmentWrapper::call|hg:hg.mozilla.org/mozilla-central:js/src/proxy/CrossCompartmentWrapper.cpp:ca379fcca95b|359|0x13
0|17|libxul.so|js::Proxy::call|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Proxy.cpp:ca379fcca95b|511|0x15
0|18|libxul.so|js::proxy_Call|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Proxy.cpp:ca379fcca95b|770|0x9
0|19|libxul.so|js::CallJSNative|hg:hg.mozilla.org/mozilla-central:js/src/jscntxtinlines.h:ca379fcca95b|291|0x6
0|20|libxul.so|js::InternalCallOrConstruct|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|455|0x12
0|21|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|522|0xd
0|22|libxul.so|Interpret|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|528|0xf
0|23|libxul.so|js::RunScript|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|423|0xb
0|24|libxul.so|js::InternalCallOrConstruct|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|495|0xf
0|25|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|522|0xd
0|26|libxul.so|js::Call|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|541|0x5
0|27|libxul.so|js::ForwardingProxyHandler::call|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Wrapper.cpp:ca379fcca95b|176|0x9
0|28|libxul.so|js::CrossCompartmentWrapper::call|hg:hg.mozilla.org/mozilla-central:js/src/proxy/CrossCompartmentWrapper.cpp:ca379fcca95b|359|0x13
0|29|libxul.so|js::Proxy::call|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Proxy.cpp:ca379fcca95b|511|0x15
0|30|libxul.so|js::proxy_Call|hg:hg.mozilla.org/mozilla-central:js/src/proxy/Proxy.cpp:ca379fcca95b|770|0x9
0|31|libxul.so|js::CallJSNative|hg:hg.mozilla.org/mozilla-central:js/src/jscntxtinlines.h:ca379fcca95b|291|0x6
0|32|libxul.so|js::InternalCallOrConstruct|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|455|0x12
0|33|libxul.so|InternalCall|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|522|0xd
0|34|libxul.so|js::Call|hg:hg.mozilla.org/mozilla-central:js/src/vm/Interpreter.cpp:ca379fcca95b|541|0x5
0|35|libxul.so|JS::Call|hg:hg.mozilla.org/mozilla-central:js/src/jsapi.cpp:ca379fcca95b|3029|0x1c
0|36|libxul.so|mozilla::dom::EventHandlerNonNull::Call|s3:gecko-generated-sources:45c7673d6cdcb9ad297632b42609e09b31819dc7edd399050135d90eee920939c623d2fafd32c6b684bb31a39ce12b69569fa2cdaed88536fb4c8b46f692a33d/dom/bindings/EventHandlerBinding.cpp:|260|0x5
0|37|libxul.so|mozilla::JSEventHandler::HandleEvent|s3:gecko-generated-sources:d0cd062a8f2e61a1842e705e1539dafa6e2559f266e0cf39cc24ecbc1de67828060d8f7d4015631bcfe7c22d53ac77e562e84587fe96e76b41b346b32ed4aeb6/dist/include/mozilla/dom/EventHandlerBinding.h:|362|0x1f
0|38|libxul.so|mozilla::EventListenerManager::HandleEventSubType|hg:hg.mozilla.org/mozilla-central:dom/events/EventListenerManager.cpp:ca379fcca95b|1111|0x14
0|39|libxul.so|mozilla::EventListenerManager::HandleEventInternal|hg:hg.mozilla.org/mozilla-central:dom/events/EventListenerManager.cpp:ca379fcca95b|1286|0x15
0|40|libxul.so|mozilla::EventTargetChainItem::HandleEvent|hg:hg.mozilla.org/mozilla-central:dom/events/EventListenerManager.h:ca379fcca95b|376|0xa
0|41|libxul.so|mozilla::EventTargetChainItem::HandleEventTargetChain|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:ca379fcca95b|496|0xf
0|42|libxul.so|mozilla::EventDispatcher::Dispatch|hg:hg.mozilla.org/mozilla-central:dom/events/EventDispatcher.cpp:ca379fcca95b|866|0x8
0|43|libxul.so|nsDocumentViewer::LoadComplete|hg:hg.mozilla.org/mozilla-central:layout/base/nsDocumentViewer.cpp:ca379fcca95b|1070|0x25
0|44|libxul.so|nsDocShell::EndPageLoad|hg:hg.mozilla.org/mozilla-central:docshell/base/nsDocShell.cpp:ca379fcca95b|7295|0x18
0|45|libxul.so|nsDocShell::OnStateChange|hg:hg.mozilla.org/mozilla-central:docshell/base/nsDocShell.cpp:ca379fcca95b|7088|0x18
0|46|libxul.so|nsDocLoader::DoFireOnStateChange|hg:hg.mozilla.org/mozilla-central:uriloader/base/nsDocLoader.cpp:ca379fcca95b|1319|0x2b
0|47|libxul.so|nsDocLoader::doStopDocumentLoad|hg:hg.mozilla.org/mozilla-central:uriloader/base/nsDocLoader.cpp:ca379fcca95b|862|0x22
0|48|libxul.so|nsDocLoader::DocLoaderIsEmpty|hg:hg.mozilla.org/mozilla-central:uriloader/base/nsDocLoader.cpp:ca379fcca95b|751|0xf
0|49|libxul.so|nsDocLoader::OnStopRequest|hg:hg.mozilla.org/mozilla-central:uriloader/base/nsDocLoader.cpp:ca379fcca95b|633|0x16
0|50|libxul.so|mozilla::net::nsLoadGroup::RemoveRequest|hg:hg.mozilla.org/mozilla-central:netwerk/base/nsLoadGroup.cpp:ca379fcca95b|629|0x1f
0|51|libxul.so|nsDocument::DoUnblockOnload|hg:hg.mozilla.org/mozilla-central:dom/base/nsDocument.cpp:ca379fcca95b|9047|0x20
0|52|libxul.so|nsDocument::UnblockOnload|hg:hg.mozilla.org/mozilla-central:dom/base/nsDocument.cpp:ca379fcca95b|8969|0x5
0|53|libxul.so|nsDocument::DispatchContentLoadedEvents|hg:hg.mozilla.org/mozilla-central:dom/base/nsDocument.cpp:ca379fcca95b|5601|0x11
0|54|libxul.so|mozilla::detail::RunnableMethodImpl<nsDocument*, void (nsDocument::*)(), true, (mozilla::RunnableKind)0u>::Run|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.h:ca379fcca95b|1142|0x13
0|55|libxul.so|mozilla::SchedulerGroup::Runnable::Run|hg:hg.mozilla.org/mozilla-central:xpcom/threads/SchedulerGroup.cpp:ca379fcca95b|395|0x1c
0|56|libxul.so|nsThread::ProcessNextEvent|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:ca379fcca95b|1040|0x15
0|57|libxul.so|NS_ProcessNextEvent|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:ca379fcca95b|517|0x11
0|58|libxul.so|mozilla::ipc::MessagePump::Run|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:ca379fcca95b|97|0xa
0|59|libxul.so|MessageLoop::RunInternal|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:ca379fcca95b|326|0x17
0|60|libxul.so|MessageLoop::Run|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:ca379fcca95b|319|0x8
0|61|libxul.so|nsBaseAppShell::Run|hg:hg.mozilla.org/mozilla-central:widget/nsBaseAppShell.cpp:ca379fcca95b|157|0xd
0|62|libxul.so|XRE_RunAppShell|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:ca379fcca95b|875|0x11
0|63|libxul.so|mozilla::ipc::MessagePumpForChildProcess::Run|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:ca379fcca95b|269|0x5
0|64|libxul.so|MessageLoop::RunInternal|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:ca379fcca95b|326|0x17
0|65|libxul.so|MessageLoop::Run|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:ca379fcca95b|319|0x8
0|66|libxul.so|XRE_InitChildProcess|hg:hg.mozilla.org/mozilla-central:toolkit/xre/nsEmbedFunctions.cpp:ca379fcca95b|701|0x8
0|67|firefox|content_process_main|hg:hg.mozilla.org/mozilla-central:ipc/contentproc/plugin-container.cpp:ca379fcca95b|63|0x14
0|68|firefox|main|hg:hg.mozilla.org/mozilla-central:browser/app/nsBrowserApp.cpp:ca379fcca95b|280|0x11
0|69|libc-2.23.so||||0x20830
0|70|firefox|MOZ_ReportAssertionFailure|hg:hg.mozilla.org/mozilla-central:mfbt/Assertions.h:ca379fcca95b|165|0x5
Flags: in-testsuite?
Group: core-security → dom-core-security
Boris: does your bug 1396466 comment 11 apply here, too?
Flags: needinfo?(bzbarsky)
It's hard to say without figuring out what the reason for the environment violation is in this case.

So far I haven't managed to reproduce.  :(
Flags: needinfo?(bzbarsky)
Attached file prefs.js (obsolete) —
Attached prefs used to reproduce.
Still no luck, even with those prefs (though I had to take out the force-enabling of acceleration to be able to start the browser).

Jason, can you reproduce?
Flags: needinfo?(jorendorff)
Is this still reproducible?
Flags: needinfo?(jkratzer)
Attached file harness.html
Flags: needinfo?(jkratzer)
Attached file trigger.html
Attachment #8940908 - Attachment is obsolete: true
Attached file prefs-default-e10s.js
Attachment #8942182 - Attachment is obsolete: true
(In reply to Boris Zbarsky [:bzbarsky, bz on IRC] from comment #5)
> Is this still reproducible?

It does.  I've updated the testcase in order to make it a bit more reproducible.

Steps to reproduce:
1.  Start a webserver in the testcase directory (python -m SimpleHTTPServer)
2.  Launch testcase using ffpuppet (https://github.com/MozillaSecurity/ffpuppet/tree/master/ffpuppet)
    -python -m ffpuppet -p prefs-default-e10s.js --xvfb -d ~/builds/mc-debug/firefox -u http://localhost:8000/harness.html

Testcase may require a couple of reloads to trigger.
Jason, thank you!  If I wanted to  do all that under rr, how should I modify that command line?
Flags: needinfo?(jkratzer)
(In reply to Boris Zbarsky [:bzbarsky, bz on IRC] from comment #10)
> Jason, thank you!  If I wanted to  do all that under rr, how should I modify
> that command line?

I haven't personally used rr under ffpuppet but you can pass the --rr flag and it should "just work".
Flags: needinfo?(jkratzer)

I can no longer repro this and the last submission in fuzzmanager is from May 29 2018.

:jkratzer, not sure if you want to have another shot at it or not.

Flags: needinfo?(jkratzer)
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → WORKSFORME
Group: dom-core-security
Flags: needinfo?(jorendorff)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: