|Summary:||[Qt] REGRESSION(r96779): It made svg/as-image/svg-nested.html timeout|
|Product:||WebKit||Reporter:||Csaba Osztrogonác <ossy>|
|Severity:||Critical||CC:||abarth, ap, arv, cevans, darin, kbalazs, lauro.neto, ossy, rhodovan.u-szeged, webkit-sed, zherczeg, zimmermann|
|Version:||528+ (Nightly build)|
|Bug Depends on:|
|Bug Blocks:||30225, 79666, 79668|
Description Csaba Osztrogonác 2011-10-06 03:43:05 PDT
After http://trac.webkit.org/changeset/96779 this test always fails with timeout: http://build.webkit.org/results/Qt%20Linux%20Release/r96779%20%2838208%29/results.html
Comment 1 Erik Arvidsson 2011-10-06 09:34:58 PDT
The data URL for the SVG image now contains <a><a>...</a></a>. This used to be URL encoded. Does Qt do something different for SVG images than other ports?
Comment 2 Csaba Osztrogonác 2011-10-06 09:38:50 PDT
This test introduced in http://trac.webkit.org/changeset/57263/trunk/LayoutTests/fast/images/svg-nested.html . (Chris or Adam, have you got any idea?)
Comment 3 Adam Barth 2011-10-06 09:43:45 PDT
We can URL encode them in the test, if that would be helpful. The intent of that test is to create a very deeply nested DOM in the SVG image.
Comment 4 Adam Barth 2011-10-06 09:44:03 PDT
(and to check that we don't crash when that happens)
Comment 5 Erik Arvidsson 2011-10-06 09:48:37 PDT
There should be no need to URL encode this data URL. FYI: It does not time out on other ports and Qurl passes other tests that have markup (html) in a data URL.
Comment 6 Erik Arvidsson 2011-10-06 09:50:45 PDT
I'll get the Qt port building on my machine so I can track this down
Comment 7 Erik Arvidsson 2011-10-11 14:57:16 PDT
Here is a stack trace #0 _wordcopy_fwd_dest_aligned (dstp=16305872, srcp=16305888, len=11580) at wordcopy.c:197 #1 0x00007ffff149873e in memmove (dest=0xf81db0, src=<value optimized out>, len=137996) at memmove.c:73 #2 0x00007ffff21f2474 in QByteArray::remove(int, int) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 #3 0x00007ffff21f3f50 in QByteArray::replace(int, int, char const*, int) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 #4 0x00007ffff229ae86 in QUrl::setEncodedUrl(QByteArray const&, QUrl::ParsingMode) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 #5 0x00007ffff229b6a6 in QUrl::fromEncoded(QByteArray const&) () from /usr/local/Trolltech/Qt-4.7.4/lib/libQtCore.so.4 #6 0x00007ffff605acf5 in WebCore::KURL::operator QUrl (this=0xc0cf08) at ../../../Source/WebCore/platform/qt/KURLQt.cpp:40 #7 0x00007ffff6041409 in WebCore::ResourceRequest::toNetworkRequest (this=0xc0cf08, originatingFrame=0x94f0b0) at ../../../Source/WebCore/platform/network/qt/ResourceRequestQt.cpp:87 #8 0x00007ffff6045d47 in WebCore::QNetworkReplyHandler::QNetworkReplyHandler (this=0xc0c040, handle=0xc0aa20, loadType=WebCore::QNetworkReplyHandler::AsynchronousLoad, deferred=false) at ../../../Source/WebCore/platform/network/qt/QNetworkReplyHandler.cpp:402 #9 0x00007ffff604074f in WebCore::ResourceHandle::start (this=0xc0aa20, context=0x985ff0) at ../../../Source/WebCore/platform/network/qt/ResourceHandleQt.cpp:112 #10 0x00007ffff5e22955 in WebCore::ResourceHandle::create (context=0x985ff0, request=..., client=0xc0b8e0, defersLoading=false, shouldContentSniff=true) at ../../../Source/WebCore/platform/network/ResourceHandle.cpp:71
Comment 8 Alexey Proskuryakov 2012-01-16 12:47:45 PST
Any update on why this is happening?
Comment 9 Csaba Osztrogonác 2012-02-02 10:34:53 PST
It is still valid. Any volunteer to pick it up?
Comment 10 Csaba Osztrogonác 2012-05-17 04:34:29 PDT
Still valid now. Zoltán? AFAIK, you are searching a good debugging thing. :) It is debugging and SVG too. ;)
Comment 11 Lauro Moura Maranhao Neto 2012-05-24 14:41:07 PDT
Using latest WebKit revision this test takes 10s on average running on Qt4 and under 1s on Qt5 (both WK1/WK2). Wouldn't it be better to move it to "qt-4.8" skip list instead of "qt"?
Comment 12 Balazs Kelemen 2012-05-24 14:59:45 PDT
(In reply to comment #11) > Using latest WebKit revision this test takes 10s on average running on Qt4 and under 1s on Qt5 (both WK1/WK2). Wouldn't it be better to move it to "qt-4.8" skip list instead of "qt"? Best would be to fix it for Qt4, but if it's non-trivial and there is no volunteer for the task I support skipping it on Qt4.
Comment 13 Csaba Osztrogonác 2012-05-25 00:07:18 PDT
I think I got the root of the problem. http://trac.webkit.org/changeset/114240 made QtWebKit use libxml instead of QtXmlPatterns, but for only Qt 5. It seems QtXmlPatterns are very very slow, but libxml is quite fast.
Comment 14 Csaba Osztrogonác 2012-05-25 00:13:17 PDT
Oh, I didn't see Comment7, it isn't libxml/QtXmlPatterns related, but QUrl related thing. But I don't think if anybody will fix it in Qt 4.8. (maybe Digia for commercial users) But this test works fine on Qt 4.8 too, but it is very slow. So I marked it as SLOW - r118485. And the bug isn't in WebKit, but in Qt 4.8, so we can close it.
Comment 15 Csaba Osztrogonác 2012-05-25 00:19:55 PDT
Qt bug report, maybe somebody is interested in fixing it - https://bugreports.qt-project.org/browse/QTBUG-25907