RESOLVED FIXED 195362
REGRESSION: (r242181) API test DragAndDropTests.ExternalSourcePlainTextToIFrame is Timing out
https://bugs.webkit.org/show_bug.cgi?id=195362
Summary REGRESSION: (r242181) API test DragAndDropTests.ExternalSourcePlainTextToIFra...
Truitt Savell
Reported 2019-03-06 10:06:24 PST
The following API test is timing out on iOS debug DragAndDropTests.ExternalSourcePlainTextToIFrame Probable cause: This began timing out with https://trac.webkit.org/changeset/242181/webkit. I confirmed this using command: run-api-tests DragAndDropTests.ExternalSourcePlainTextToIFrame --ios-simulator --debug on r242181 which produces a timeout. Running this on r242180 produces no timeouts. Timeout TestWebKitAPI.DragAndDropTests.ExternalSourcePlainTextToIFrame ASSERTION FAILED: areOriginsMatching(origin1, origin2) == (origin1.toString() == origin2.toString()) ./page/SecurityOrigin.cpp(499) : bool WebCore::originsMatch(const WebCore::SecurityOrigin &, const WebCore::SecurityOrigin &) 1 0x222720bf9 WTFCrash 2 0x2267efeeb WTFCrashWithInfo(int, char const*, char const*, int) 3 0x229430c12 WebCore::originsMatch(WebCore::SecurityOrigin const&, WebCore::SecurityOrigin const&) 4 0x22913c68e WebCore::DocumentLoader::shouldOpenExternalURLsPolicyToPropagate() const 5 0x228887b0d WebCore::Document::shouldOpenExternalURLsPolicyToPropagate() const 6 0x229315cd8 WebCore::DragController::performDragOperation(WebCore::DragData const&) 7 0x109363210 WebKit::WebPage::performDragControllerAction(WebKit::DragControllerAction, WebCore::DragData const&, WebKit::SandboxExtension::Handle&&, WebKit::SandboxExtension::HandleArray&&) 8 0x1093ee8fd void IPC::callMemberFunctionImpl<WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::DragControllerAction, WebCore::DragData const&, WebKit::SandboxExtension::Handle&&, WebKit::SandboxExtension::HandleArray&&), std::__1::tuple<WebKit::DragControllerAction, WebCore::DragData, WebKit::SandboxExtension::Handle, WebKit::SandboxExtension::HandleArray>, 0ul, 1ul, 2ul, 3ul>(WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::DragControllerAction, WebCore::DragData const&, WebKit::SandboxExtension::Handle&&, WebKit::SandboxExtension::HandleArray&&), std::__1::tuple<WebKit::DragControllerAction, WebCore::DragData, WebKit::SandboxExtension::Handle, WebKit::SandboxExtension::HandleArray>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul>) 9 0x1093ee3b0 void IPC::callMemberFunction<WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::DragControllerAction, WebCore::DragData const&, WebKit::SandboxExtension::Handle&&, WebKit::SandboxExtension::HandleArray&&), std::__1::tuple<WebKit::DragControllerAction, WebCore::DragData, WebKit::SandboxExtension::Handle, WebKit::SandboxExtension::HandleArray>, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul> >(std::__1::tuple<WebKit::DragControllerAction, WebCore::DragData, WebKit::SandboxExtension::Handle, WebKit::SandboxExtension::HandleArray>&&, WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::DragControllerAction, WebCore::DragData const&, WebKit::SandboxExtension::Handle&&, WebKit::SandboxExtension::HandleArray&&)) 10 0x1093cf554 void IPC::handleMessage<Messages::WebPage::PerformDragControllerAction, WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::DragControllerAction, WebCore::DragData const&, WebKit::SandboxExtension::Handle&&, WebKit::SandboxExtension::HandleArray&&)>(IPC::Decoder&, WebKit::WebPage*, void (WebKit::WebPage::*)(WebKit::DragControllerAction, WebCore::DragData const&, WebKit::SandboxExtension::Handle&&, WebKit::SandboxExtension::HandleArray&&)) 11 0x1093be8d8 WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&, IPC::Decoder&) 12 0x10936606e WebKit::WebPage::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 13 0x10834524a IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) 14 0x109004b1d WebKit::WebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 15 0x1082f851c IPC::Connection::dispatchMessage(IPC::Decoder&) 16 0x1082eadf1 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) 17 0x1082f92e7 IPC::Connection::dispatchOneIncomingMessage() 18 0x108319f78 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()() 19 0x108319e89 WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call() 20 0x22274b0bd WTF::Function<void ()>::operator()() const 21 0x2227aa823 WTF::RunLoop::performWork() 22 0x2227ab1b4 WTF::RunLoop::performWork(void*) 23 0x10e267721 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 24 0x10e266f93 __CFRunLoopDoSources0 25 0x10e26163f __CFRunLoopRun 26 0x10e260e11 CFRunLoopRunSpecific 27 0x107d34322 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] 28 0x107d34492 -[NSRunLoop(NSRunLoop) run] 29 0x10fa58812 _xpc_objc_main 30 0x10fa5acbd xpc_main 31 0x108778497 WebKit::XPCServiceMain(int, char const**)
Attachments
Patch (1.47 KB, patch)
2019-03-07 19:50 PST, youenn fablet
no flags
Alexey Proskuryakov
Comment 1 2019-03-07 15:35:09 PST
What is the next step here? 8 days ago seems like maybe roll back?
Brady Eidson
Comment 2 2019-03-07 15:51:07 PST
(In reply to Truitt Savell from comment #0) > > This began timing out with https://trac.webkit.org/changeset/242181/webkit That change caused a *different* assertion, as mentioned in https://bugs.webkit.org/show_bug.cgi?id=195126 Also as mentioned in https://bugs.webkit.org/show_bug.cgi?id=195126, I identified it as a bogus assertion so I removed it in https://trac.webkit.org/changeset/242249/webkit That was 7-8 days ago. The assertion being reported in this bug is a different one that Youenn re-added in https://trac.webkit.org/changeset/242283/webkit
Brady Eidson
Comment 3 2019-03-07 15:51:48 PST
(In reply to Alexey Proskuryakov from comment #1) > What is the next step here? 8 days ago seems like maybe roll back? The regression caused 8 days ago was fixed 8 days ago. This assertion was added 6 days ago in https://trac.webkit.org/changeset/242283/webkit I would suggest contacting Youenn about that instead of me.
youenn fablet
Comment 4 2019-03-07 19:50:51 PST
Alexey Proskuryakov
Comment 5 2019-03-11 17:37:13 PDT
Comment on attachment 363976 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=363976&action=review > Source/WebCore/page/SecurityOrigin.cpp:499 > + ASSERT(!areOriginsMatching(origin1, origin2) || (origin1.toString() == origin2.toString())); This assertion says that matching origins must have identical toString() results. Why is this invariant important? This should be explained in a comment, as otherwise someone will just remove it when it starts to fail after another change. For example, if toString() begins to output file URL host, which it kind of is supposed to do, I'm not sure how it follows that we would have to treat the URLs as not matching - in fact, file://localhost/ is usually same as file://. This assertion alone does very little to explain why a change like the former would be wrong.
youenn fablet
Comment 6 2019-03-11 17:40:38 PDT
(In reply to Alexey Proskuryakov from comment #5) > Comment on attachment 363976 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=363976&action=review > > > Source/WebCore/page/SecurityOrigin.cpp:499 > > + ASSERT(!areOriginsMatching(origin1, origin2) || (origin1.toString() == origin2.toString())); > > This assertion says that matching origins must have identical toString() > results. Why is this invariant important? This should be explained in a > comment, as otherwise someone will just remove it when it starts to fail > after another change. > > For example, if toString() begins to output file URL host, which it kind of > is supposed to do, I'm not sure how it follows that we would have to treat > the URLs as not matching - in fact, file://localhost/ is usually same as > file://. This assertion alone does very little to explain why a change like > the former would be wrong. Agreed, https://bugs.webkit.org/show_bug.cgi?id=195572 is planning to rename originsMatch to originSerializationsMatch which hopefully makes it clearer. Above bug should also remove some current uses of originsMatch as I believe, SecurityOrigin::isSameOriginAs might be better in most cases.
WebKit Commit Bot
Comment 7 2019-03-11 18:08:23 PDT
Comment on attachment 363976 [details] Patch Clearing flags on attachment: 363976 Committed r242761: <https://trac.webkit.org/changeset/242761>
WebKit Commit Bot
Comment 8 2019-03-11 18:08:25 PDT
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 9 2019-03-11 18:09:20 PDT
Note You need to log in before you can comment on or make changes to this bug.