Bug 69511
Summary: | [Qt] REGRESSION(r96779): It made svg/as-image/svg-nested.html timeout | ||
---|---|---|---|
Product: | WebKit | Reporter: | Csaba Osztrogonác <ossy> |
Component: | SVG | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | Critical | CC: | abarth, ap, arv, cevans, darin, kbalazs, lauro.neto, ossy, rhodovan.u-szeged, webkit-sed, zherczeg, zimmermann |
Priority: | P1 | Keywords: | Qt, QtTriaged |
Version: | 528+ (Nightly build) | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | |||
Bug Blocks: | 30225, 79666, 79668 |
Csaba Osztrogonác
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
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Erik Arvidsson
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?
Csaba Osztrogonác
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?)
Adam Barth
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.
Adam Barth
(and to check that we don't crash when that happens)
Erik Arvidsson
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.
Erik Arvidsson
I'll get the Qt port building on my machine so I can track this down
Erik Arvidsson
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
Alexey Proskuryakov
Any update on why this is happening?
Csaba Osztrogonác
It is still valid. Any volunteer to pick it up?
Csaba Osztrogonác
Still valid now. Zoltán? AFAIK, you are searching a good debugging thing. :) It is debugging and SVG too. ;)
Lauro Moura Maranhao Neto
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"?
Balazs Kelemen
(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.
Csaba Osztrogonác
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.
Csaba Osztrogonác
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.
Csaba Osztrogonác
Qt bug report, maybe somebody is interested in fixing it - https://bugreports.qt-project.org/browse/QTBUG-25907