Bug 35251 - [Qt] QtLauncher crashes on Mac OS and Linux when exiting with QGraphicsView mode enabled
Summary: [Qt] QtLauncher crashes on Mac OS and Linux when exiting with QGraphicsView m...
Status: CLOSED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P3 Critical
Assignee: Yael
URL:
Keywords: Qt
Depends on:
Blocks: 35784
  Show dependency treegraph
 
Reported: 2010-02-22 11:06 PST by Jesus Sanchez-Palencia
Modified: 2010-03-29 03:54 PDT (History)
8 users (show)

See Also:


Attachments
Backtrace (2.64 KB, text/rtf)
2010-02-22 11:06 PST, Jesus Sanchez-Palencia
no flags Details
Patch (2.34 KB, patch)
2010-03-25 11:03 PDT, Yael
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jesus Sanchez-Palencia 2010-02-22 11:06:23 PST
Created attachment 49229 [details]
Backtrace

If you close QtLauncher while on QGraphicsView mode you will get a segfault.
You don't need to open any page, just run QtLauncher, enable QGraphicsView mode and close it.

Backtrace is attached.
Comment 1 Tor Arne Vestbø 2010-03-10 06:42:44 PST
Please follow the QtWebKit bug reporting guidelines when reporting bugs.

See http://trac.webkit.org/wiki/QtWebKitBugs

Specifically:

  - The 'QtWebKit' component should only be used for bugs/features in the
    public QtWebKit API layer, not to signify that the bug is specific to
    the Qt port of WebKit

      http://trac.webkit.org/wiki/QtWebKitBugs#Component

  - Add the keyword 'Qt' to signal that it's a Qt-related bug

      http://trac.webkit.org/wiki/QtWebKitBugs#Keywords
Comment 2 Kent Hansen 2010-03-15 03:20:40 PDT
It crashes on Linux too (r55986, qt-oslo-staging-1/4.7 ccf34d2a9f2d3aa2341de7babab5188b359861a1):

#0  0x0038edfa in QListData::size (this=0x3ba2164) at ../../include/QtCore/../../src/corelib/tools/qlist.h:94
#1  0x003b05fd in QList<QPair<QHttpNetworkRequest, QHttpNetworkReply*> >::length (this=0x3ba2164) at ../../include/QtCore/../../src/corelib/tools/qlist.h:287
#2  0x003ae5ce in QHttpNetworkConnectionPrivate::removeReply (this=0x87c4f90, reply=0x8741268) at access/qhttpnetworkconnection.cpp:652
#3  0x003a554f in ~QHttpNetworkReply (this=0x8741268, __in_chrg=<value optimized out>) at access/qhttpnetworkreply.cpp:66
#4  0x03a4f990 in QObjectPrivate::deleteChildren (this=0x873edc8) at kernel/qobject.cpp:1981
#5  0x03a4d769 in ~QObject (this=0x872f240, __in_chrg=<value optimized out>) at kernel/qobject.cpp:978
#6  0x003c501f in ~QNetworkAccessBackend (this=0x872f240, __in_chrg=<value optimized out>) at access/qnetworkaccessbackend.cpp:162
#7  0x003ce7b7 in ~QNetworkAccessHttpBackend (this=0x872f240, __in_chrg=<value optimized out>) at access/qnetworkaccesshttpbackend.cpp:311
#8  0x03a53ca6 in qDeleteInEventHandler (o=0x872f240) at kernel/qobject.cpp:4010
#9  0x03a4e6e0 in QObject::event (this=0x872f240, e=0x86c8138) at kernel/qobject.cpp:1226
#10 0x01b53ca8 in QApplicationPrivate::notify_helper (this=0x8106c20, receiver=0x872f240, e=0x86c8138) at kernel/qapplication.cpp:4336
#11 0x01b514fe in QApplication::notify (this=0xbffff0fc, receiver=0x872f240, e=0x86c8138) at kernel/qapplication.cpp:3740
#12 0x03a3572f in QCoreApplication::notifyInternal (this=0xbffff0fc, receiver=0x872f240, event=0x86c8138) at kernel/qcoreapplication.cpp:704
#13 0x01b4390f in QCoreApplication::sendEvent (receiver=0x872f240, event=0x86c8138) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#14 0x03a367e3 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=52, data=0x8106d18) at kernel/qcoreapplication.cpp:1345
#15 0x03a3649b in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=52) at kernel/qcoreapplication.cpp:1238
#16 0x03a35e88 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:988
#17 0x01b51154 in QApplication::exec () at kernel/qapplication.cpp:3615
#18 0x080675b1 in main ()
Comment 3 Jesus Sanchez-Palencia 2010-03-16 09:13:14 PDT
Reproduced on Mac and Linux, so this is not Mac specific anymore. Platform changed to "All" and updated bug Summary.
Comment 4 Yael 2010-03-25 07:36:08 PDT
Crashes on S60 too
Comment 5 Yael 2010-03-25 11:03:38 PDT
Created attachment 51658 [details]
Patch

This patch prevents QGraphicsWebView from accessing QWebPage in its destructor, if QWebPage was previously deleted. The same is already done for QWebView.
On some web sites, we would still crash though.  The crash is due to r40160 which triggers all timers to fire after everything was deleted.
Comment 6 WebKit Commit Bot 2010-03-25 14:59:02 PDT
Comment on attachment 51658 [details]
Patch

Rejecting patch 51658 from commit-queue.

Failed to run "['git', 'svn', 'dcommit']" exit_code: 1
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebKit/qt/Api/qgraphicswebview.cpp
RA layer request failed: CHECKOUT of '/repository/webkit/!svn/ver/56322/trunk/WebKit/qt/Api/qgraphicswebview.h': 500 Internal Server Error (http://svn.webkit.org) at /usr/local/git/libexec/git-core/git-svn line 558


Full output: http://webkit-commit-queue.appspot.com/results/1333005
Comment 7 Eric Seidel (no email) 2010-03-25 15:06:35 PDT
that's a very strange rejection message.
Comment 8 WebKit Commit Bot 2010-03-25 17:24:40 PDT
Comment on attachment 51658 [details]
Patch

Clearing flags on attachment: 51658

Committed r56581: <http://trac.webkit.org/changeset/56581>
Comment 9 WebKit Commit Bot 2010-03-25 17:24:45 PDT
All reviewed patches have been landed.  Closing bug.
Comment 10 Simon Hausmann 2010-03-26 08:41:42 PDT
Revision r56581 cherry-picked into qtwebkit-2.0 with commit bff2a8de464d308f67ae79006a34fad26830933d
Comment 11 Simon Hausmann 2010-03-29 03:54:49 PDT
Cherry-picked into qtwebkit-4.6 with commit df640d8f4a6353bfe42990322dd80c019c43539a