[webkit-dev] Robotized QtLauncher

Kelemen Balázs Kelemen.Balazs.3 at stud.u-szeged.hu
Mon Sep 1 07:21:32 PDT 2008


      Hi Webkit developers!

I made modifications in QtLauncher for possibility of taking large
tests and searching memory leaks or other errors with tools like valgrind.
In my version when the first parameter is an existing file with the
suffix "urllist" (for example: urls.urllist) QtLauncher loads the urls
that it contains. The file must be a simple text file with one url in each
line and the suffix must be "urllist".
When the parameter is not a file it works like before.
I found many problems in webkit with this tool. Usually these
problems appears with an assertion hit. Te most recently is:

ASSERTION FAILED: m_frame->document()->parsing()
(../../../WebCore/loader/FrameLoader.cpp:1865 void  
WebCore::FrameLoader::addData(const char*, int))

I think this can be useful and I want to continue work on this, so I  
ask you about your opinion. Is it possible to merge this code into the  
trunk
(for except into a separate directory like WebKit/qt/QtLauncher_test)?
Anyway it could be useful for me if somebody would check it and affirm  
that my code is correct and the problems are in Webkit itself (I  
really believe in it
but there are some errors that I can not reproducate manually.)
My changes are just a few lines in WebKit/qt/QtLauncher/main.cpp (and
one in QtLauncher.pro). I attach my changes and a backtrace of the error
I show above.

Thanks!
Kelemen Balázs




----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: robot.patch
Type: text/x-patch
Size: 4005 bytes
Desc: not available
Url : http://lists.webkit.org/pipermail/webkit-dev/attachments/20080901/930bf9a7/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: main.cpp
Type: text/x-c++src
Size: 15254 bytes
Desc: not available
Url : http://lists.webkit.org/pipermail/webkit-dev/attachments/20080901/930bf9a7/attachment-0001.bin 
-------------- next part --------------
(gdb) run crasher.urllist
Starting program: /home/balazs/Webkit/WebKitBuild/Debug/bin/QtLauncher crasher.urllist
[Thread debugging using libthread_db enabled]
[New Thread -1266465088 (LWP 29472)]
Loading http://advertising.msn.com/home/home.asp ......
Loading http://about.reuters.com/media/customer_support/branding/popups/full_legal_notice.htm ......
Loading http://add.my.yahoo.com/rss?url=http://blogs.moneycentral.msn.com/smartspending/rss.aspx ......
Loading http://ad.doubleclick.net/clk;167837766;23040241;g?http://www.scottrade.com?id=1 ......
[New Thread -1270740048 (LWP 29556)]
ASSERTION FAILED: m_frame->document()->parsing()
(../../../WebCore/loader/FrameLoader.cpp:1865 void WebCore::FrameLoader::addData(const char*, int))

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1266465088 (LWP 29472)]
0xb69809d0 in WebCore::FrameLoader::addData (this=0x811787c,
    bytes=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768) at ../../../WebCore/loader/FrameLoader.cpp:1865
1865        ASSERT(m_frame->document()->parsing());
(gdb) bt
#0  0xb69809d0 in WebCore::FrameLoader::addData (this=0x811787c,
    bytes=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768) at ../../../WebCore/loader/FrameLoader.cpp:1865
#1  0xb6c58f2f in WebCore::FrameLoaderClientQt::committedLoad (this=0x8117510, loader=0x8181908,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768) at ../../../WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:691
#2  0xb6978ef6 in WebCore::FrameLoader::committedLoad (this=0x811787c, loader=0x8181908,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768) at ../../../WebCore/loader/FrameLoader.cpp:3366
#3  0xb6968e4a in WebCore::DocumentLoader::commitLoad (this=0x8181908,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768) at ../../../WebCore/loader/DocumentLoader.cpp:355
#4  0xb6968ed6 in WebCore::DocumentLoader::receivedData (this=0x8181908,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768) at ../../../WebCore/loader/DocumentLoader.cpp:367
#5  0xb697bc23 in WebCore::FrameLoader::receivedData (this=0x811787c,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768) at ../../../WebCore/loader/FrameLoader.cpp:2317
#6  0xb69a566e in WebCore::MainResourceLoader::addData (this=0x81d0870,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768, allAtOnce=false) at ../../../WebCore/loader/MainResourceLoader.cpp:145
#7  0xb69acabf in WebCore::ResourceLoader::didReceiveData (this=0x81d0870,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768, lengthReceived=32768, allAtOnce=false)
    at ../../../WebCore/loader/ResourceLoader.cpp:251
---Type <return> to continue, or q <return> to quit---return
#8  0xb69a53f2 in WebCore::MainResourceLoader::didReceiveData (this=0x81d0870,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768, lengthReceived=32768, allAtOnce=false)
    at ../../../WebCore/loader/MainResourceLoader.cpp:305
#9  0xb69abe58 in WebCore::ResourceLoader::didReceiveData (this=0x81d0870,
    data=0x8272ef0 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\r\n<html class=\"ua-wk\">\r\n<head>\r\n<script>var gTop = Number(new Date());</script>", ' ' <repeats 11 times>, "<script>  </script> "..., length=32768, lengthReceived=32768) at ../../../WebCore/loader/ResourceLoader.cpp:393
#10 0xb6c29797 in WebCore::QNetworkReplyHandler::forwardData (this=0x8201f48)
    at ../../../WebCore/platform/network/qt/QNetworkReplyHandler.cpp:310
#11 0xb6c2acd8 in WebCore::QNetworkReplyHandler::qt_metacall (this=0x8201f48, _c=QMetaObject::InvokeMetaMethod,
    _id=2, _a=0x81b1270) at ./moc_QNetworkReplyHandler.cpp:70
#12 0xb4e15b59 in QMetaCallEvent::placeMetaCall (this=0x824aa08, object=0x8201f48) at kernel/qobject.cpp:535
#13 0xb4e16d11 in QObject::event (this=0x8201f48, e=0x824aa08) at kernel/qobject.cpp:1131
#14 0xb520c05f in QApplicationPrivate::notify_helper (this=0x80e1470, receiver=0x8201f48, e=0x824aa08)
    at kernel/qapplication.cpp:3800
#15 0xb5210b69 in QApplication::notify (this=0xbff007e0, receiver=0x8201f48, e=0x824aa08)
    at kernel/qapplication.cpp:3392
#16 0xb4e07227 in QCoreApplication::notifyInternal (this=0xbff007e0, receiver=0x8201f48, event=0x824aa08)
    at kernel/qcoreapplication.cpp:591
#17 0xb4e0852d in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x80e1528)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#18 0xb4e087cd in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0)
    at kernel/qcoreapplication.cpp:1095
#19 0xb4e326dd in postEventSourceDispatch (s=0x80e7ea0)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#20 0xb4c4a731 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#21 0xb4c4d7a6 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#22 0xb4c4dd27 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#23 0xb4e32aa8 in QEventDispatcherGlib::processEvents (this=0x80e5938, flags=@0xbff00648)
    at kernel/qeventdispatcher_glib.cpp:325
#24 0xb529d2f5 in QGuiEventDispatcherGlib::processEvents (this=0x80e5938, flags=@0xbff00678)
---Type <return> to continue, or q <return> to quit---return
    at kernel/qguieventdispatcher_glib.cpp:204
#25 0xb4e064cd in QEventLoop::processEvents (this=0xbff006f0, flags=@0xbff006b8) at kernel/qeventloop.cpp:149
#26 0xb4e0666d in QEventLoop::exec (this=0xbff006f0, flags=@0xbff006f8) at kernel/qeventloop.cpp:200
#27 0xb4e08886 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:849
#28 0xb520b957 in QApplication::exec () at kernel/qapplication.cpp:3330
#29 0x08057607 in main (argc=-1262438864, argv=0xb4ae6440) at /home/balazs/Webkit/WebKit/qt/QtLauncher/main.cpp:434
(gdb)                        


More information about the webkit-dev mailing list