Bug 80209 - [Qt][WK2] http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml crashes
Summary: [Qt][WK2] http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml crashes
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P1 Critical
Assignee: Michael Brüning
URL:
Keywords: Qt, QtTriaged
Depends on:
Blocks: 79668
  Show dependency treegraph
 
Reported: 2012-03-02 23:40 PST by Csaba Osztrogonác
Modified: 2012-05-15 13:25 PDT (History)
5 users (show)

See Also:


Attachments
Patch (3.77 KB, patch)
2012-05-15 09:33 PDT, Michael Brüning
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Csaba Osztrogonác 2012-03-02 23:40:10 PST
http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml 
crashes on Qt5-WK2 platform.

I don't know when started it to crash and I don't have crash
log, because it didn't upload it. It needs more investigation.
Comment 1 Csaba Osztrogonác 2012-03-02 23:49:19 PST
I skipped it to paint the bot green (r109655.)
Comment 2 Csaba Osztrogonác 2012-03-03 01:19:14 PST
Here is the debug crash log:
$ cat xss-DENIED-xsl-document-securityOrigin-crash-log.txt  | c++filt
ERROR: Icon database already has a path and is already open. We don't currently support changing its path and reopening.
/home/oszi/WebKit/Source/WebKit2/UIProcess/WebIconDatabase.cpp(66) : void WebKit::WebIconDatabase::setDatabasePath(const WTF::String&)
ASSERTION FAILED: !iconURLOriginal.isEmpty()
/home/oszi/WebKit/Source/WebCore/loader/icon/IconDatabase.cpp(578) : virtual void WebCore::IconDatabase::setIconURLForPageURL(const WTF::String&, const WTF::String&)
1   0x7f5f481fed65 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebCore::IconDatabase::setIconURLForPageURL(WTF::String const&, WTF::String const&)+0xc9) [0x7f5f481fed65]
2   0x7f5f47364852 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebKit::WebIconDatabase::setIconURLForPageURL(WTF::String const&, WTF::String const&)+0x112) [0x7f5f47364852]
3   0x7f5f4750f42a /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(void CoreIPC::callMemberFunction<WebKit::WebIconDatabase, void (WebKit::WebIconDatabase::*)(WTF::String const&, WTF::String const&), WTF::String, WTF::String>(CoreIPC::Arguments2<WTF::String, WTF::String> const&, WebKit::WebIconDatabase*, void (WebKit::WebIconDatabase::*)(WTF::String const&, WTF::String const&))+0x69) [0x7f5f4750f42a]
4   0x7f5f4750eeb4 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(void CoreIPC::handleMessage<Messages::WebIconDatabase::SetIconURLForPageURL, WebKit::WebIconDatabase, void (WebKit::WebIconDatabase::*)(WTF::String const&, WTF::String const&)>(CoreIPC::ArgumentDecoder*, WebKit::WebIconDatabase*, void (WebKit::WebIconDatabase::*)(WTF::String const&, WTF::String const&))+0x5f) [0x7f5f4750eeb4]
5   0x7f5f4750ea72 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebKit::WebIconDatabase::didReceiveWebIconDatabaseMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*)+0xf4) [0x7f5f4750ea72]
6   0x7f5f47365404 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebKit::WebIconDatabase::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*)+0x32) [0x7f5f47365404]
7   0x7f5f4734794c /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebKit::WebContext::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*)+0x268) [0x7f5f4734794c]
8   0x7f5f473bab63 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*)+0x14f) [0x7f5f473bab63]
9   0x7f5f4733e22f /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebKit::WebConnectionToWebProcess::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::ArgumentDecoder*)+0x179) [0x7f5f4733e22f]
10  0x7f5f472948e3 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message<CoreIPC::ArgumentDecoder>&)+0x171) [0x7f5f472948e3]
11  0x7f5f47294ac5 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(CoreIPC::Connection::dispatchMessages()+0xc9) [0x7f5f47294ac5]
12  0x7f5f4729ee9d /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WTF::FunctionWrapper<void (CoreIPC::Connection::*)()>::operator()(CoreIPC::Connection*)+0x59) [0x7f5f4729ee9d]
13  0x7f5f4729eba6 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WTF::BoundFunctionImpl<WTF::FunctionWrapper<void (CoreIPC::Connection::*)()>, void ()(CoreIPC::Connection*)>::operator()()+0x32) [0x7f5f4729eba6]
14  0x7f5f473d5a60 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WTF::Function<void ()()>::operator()() const+0x72) [0x7f5f473d5a60]
15  0x7f5f47ebf831 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebCore::RunLoop::performWork()+0x91) [0x7f5f47ebf831]
16  0x7f5f48195ccc /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(WebCore::RunLoop::TimerObject::performWork()+0x1c) [0x7f5f48195ccc]
17  0x7f5f48196b05 /home/oszi/WebKit/WebKitBuild/Debug/lib/libQtWebKit.so.4(+0x2cacb05) [0x7f5f48196b05]
18  0x7f5f41db2286 /usr/local/Trolltech/Qt5/Qt-5.0.0-r25/lib/libQtCore.so.5(QObject::event(QEvent*)+0x396) [0x7f5f41db2286]
19  0x7f5f42ed40ac /usr/local/Trolltech/Qt5/Qt-5.0.0-r25/lib/libQtWidgets.so.5(QApplicationPrivate::notify_helper(QObject*, QEvent*)+0xac) [0x7f5f42ed40ac]
20  0x7f5f42edcf22 /usr/local/Trolltech/Qt5/Qt-5.0.0-r25/lib/libQtWidgets.so.5(QApplication::notify(QObject*, QEvent*)+0x152) [0x7f5f42edcf22]
21  0x7f5f41d91c24 /usr/local/Trolltech/Qt5/Qt-5.0.0-r25/lib/libQtCore.so.5(QCoreApplication::notifyInternal(QObject*, QEvent*)+0x84) [0x7f5f41d91c24]
22  0x7f5f41d96692 /usr/local/Trolltech/Qt5/Qt-5.0.0-r25/lib/libQtCore.so.5(QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)+0x2e2) [0x7f5f41d96692]
23  0x7f5f41dd6d43 /usr/local/Trolltech/Qt5/Qt-5.0.0-r25/lib/libQtCore.so.5(+0x20bd43) [0x7f5f41dd6d43]
24  0x7f5f447446f2 /lib/libglib-2.0.so.0(g_main_context_dispatch+0x1f2) [0x7f5f447446f2]
25  0x7f5f44748568 /lib/libglib-2.0.so.0(+0x42568) [0x7f5f44748568]
26  0x7f5f4474871c /lib/libglib-2.0.so.0(g_main_context_iteration+0x6c) [0x7f5f4474871c]
27  0x7f5f41dd683e /usr/local/Trolltech/Qt5/Qt-5.0.0-r25/lib/libQtCore.so.5(QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x6e) [0x7f5f41dd683e]
28  0x7f5f41d91b7d /usr/local/Trolltech/Qt5/Qt-5.0.0-r25/lib/libQtCore.so.5(QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>, int)+0x3d) [0x7f5f41d91b7d]
29  0x4117a0 /home/oszi/WebKit/WebKitBuild/Debug/bin/WebKitTestRunner() [0x4117a0]
30  0x414212 /home/oszi/WebKit/WebKitBuild/Debug/bin/WebKitTestRunner() [0x414212]
31  0x417b3b /home/oszi/WebKit/WebKitBuild/Debug/bin/WebKitTestRunner() [0x417b3b]
Comment 3 Michael Brüning 2012-05-15 01:53:08 PDT
Investigating...
Comment 4 Michael Brüning 2012-05-15 04:21:14 PDT
The problem here seems to be that WTR is creating a new WebView reusing the WebContext reference from the previous view, which leads to the resetting of the WebIconsDatabase databasePath. I have checked the mac port and it's not a problem there as the mac WKView does not initialize the icon database automatically. 

Will look how to best fix this.
Comment 5 Michael Brüning 2012-05-15 09:17:14 PDT
I have solved the first crash, but this uncovered an ASSERT on debug builds and a crash (not 100% reproducible) on Release builds. I will upload the first patch anyway as this might cause errors elsewhere in WTR and investigate furhter on the 2nd assert / crash.
Comment 6 Michael Brüning 2012-05-15 09:33:16 PDT
Created attachment 141989 [details]
Patch
Comment 7 WebKit Review Bot 2012-05-15 13:25:25 PDT
Comment on attachment 141989 [details]
Patch

Clearing flags on attachment: 141989

Committed r117141: <http://trac.webkit.org/changeset/117141>
Comment 8 WebKit Review Bot 2012-05-15 13:25:30 PDT
All reviewed patches have been landed.  Closing bug.