[Webkit-unassigned] [Bug 54000] New: [Qt] Crash on application exit after constructing and destroying a QWebView twice

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Feb 8 07:10:16 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=54000

           Summary: [Qt] Crash on application exit after constructing and
                    destroying a QWebView twice
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Windows XP
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P3
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: kari.salminen at null.coop


Created an attachment (id=81632)
 --> (https://bugs.webkit.org/attachment.cgi?id=81632&action=review)
Test case for the bug

How to reproduce the crash (Tested on Qt 4.7.0/Windows XP/MSVC9/Qt Creator 2.0.1):
 - Create a QApplication
 - Loop this twice:
  - Create a QWindow and and a QWebView
  - Set the QWebView as the QWindow's central widget
  - Load an URL (e.g. http://www.google.com/) to the QWebView and show it
  - Execute the QApplication
  - User interaction: Close the window by clicking on the X
 - Exit the program
 - Voila! Crash (Not always, but sometimes).

I've included a webtest.zip containing a webtest.pro and main.cpp
that contains the test case. The test case does not crash every time
on my computer though, only sometimes (I don't think my computer's hardware
e.g. memory, is faulty because the computer is usually very stable).

Also I noticed that on second showing of the Google page not all
looked the same (If there was moving graphics there on the first
run, the second run all was static i.e. not moving).

The real use case behind this bug is using a relogin system in our
commercial software that creates the main window completely from
scratch when logging out and relogging in (We don't shut down the
application in between logging out and relogging in).

--- Stack trace from Qt Creator 2.0.1 with MSVC debugger: ---

Exception at 0x0, code: 0xc0000005: read access violation at: 0x0, flags=0x0

Level    Function    File    Line    Address
0    GetModuleFileNameA    kernel32    0    0x0    
1    WebCore::SharedTimerQt::~SharedTimerQt    SharedTimerQt.cpp    74    0x109ec8f1    
2    WebCore::SharedTimerQt::`scalar deleting destructor'    QtWebKitd4    0    0x109ecdcf    
3    WebCore::SharedTimerQt::destroy    SharedTimerQt.cpp    78    0x109ec94a    
4    WebCore::SharedTimerQt::qt_metacall    SharedTimerQt.moc    74    0x109ecc88    
5    QMetaObject::metacall    qmetaobject.cpp    238    0x671ca551    
6    QMetaObject::activate    qobject.cpp    3272    0x671e1dc6    
7    QCoreApplication::aboutToQuit    moc_qcoreapplication.cpp    131    0x67263049    
8    QCoreApplication::exec    qcoreapplication.cpp    1015    0x671c103d    
9    QApplication::exec    qapplication.cpp    3673    0x6506e458    
10    main    main.cpp    17    0x401189    
11    WinMain    qtmain_win.cpp    131    0x4023ca    
12    __tmainCRTStartup    crtexe.c    578    0x4018a8    
13    WinMainCRTStartup    crtexe.c    403    0x40160f    
14    RegisterWaitForInputIdle    kernel32    0    0x7c816fe7    

C:\Qt\4.7.0\src\3rdparty\webkit\WebCore\platform\qt\SharedTimerQt.cpp:

SharedTimerQt::~SharedTimerQt()
{
    if (m_timer.isActive())
        (m_timerFunction)();
} // <------ debugger points here at level 1 (Points to assembly code on level 0)

According to https://svn.webkit.org/wiki/QtWebKitRelease20 QtWebKit that comes
with Qt 4.7.0, which I'm using, was branches off WebKit trunk from SVN r56441
("AppleWebKit/533.3") and thus I chose 528+ as the version number.

I chose to report this here instead than in the Qt's bug tracker because of
Henry Haverinen's comment on 25/May/10 12:24 PM at
http://bugreports.qt.nokia.com/browse/QTWEBKIT-189 hoping that this is
the correct place for this bug.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list