[Webkit-unassigned] [Bug 71035] New: crash near WebCore::QtFallbackWebPopupCombo::hidePopup when dismissing a <select> before it is fully rendered (Mac only)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 27 10:53:09 PDT 2011


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

           Summary: crash near WebCore::QtFallbackWebPopupCombo::hidePopup
                    when dismissing a <select> before it is fully rendered
                    (Mac only)
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Macintosh
        OS/Version: Mac OS X 10.6
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: WebKit Qt
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: sturm at branewave.com


I can consistently cause a crash by rapidly opening/dismissing a "select" (combo box) element.

I have only seen this on Mac OS X.  I have seen it on all recent versions, OS X 10.4 through 10.7.

Steps:
1. launch "fancybrowser.app" (one of the examples that ships with Qt -- /Developer/Examples/Qt/webkit/fancybrowser)
2. go to http://www.tizag.com/htmlT/htmlselect.php (or basically any webpage that has a "select")
3. rapidly open and dismiss one of the select's (I do this by clicking to open it, and then hitting esc to dismiss it, over and over as quick as possible)
4. Crash!!

I do believe the crash happens if you dismiss the popup before it is done rendering.  So it's a timing issue and can be difficult to reproduce.  You have to go real fast.  The more items in the select the better -- you have a longer timeframe to cause the problem.  I also suspect that if you got fancy CSS styling going on, it may give you a longer timeframe in which to cause the problem.

Anyhow, here are two crash reports.  The middle bits are a little different, but it always filters back down into WebCore::QtFallbackWebPopupCombo::hidePopup.


-------- 8< ---------
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000040422f58

VM Regions Near 0x40422f58:
    JS garbage collector   000000000cb40000-000000000cbc0000 [  512K] rw-/rw- SM=PRV  
--> 
    __TEXT                 000000008febd000-000000008fef0000 [  204K] r-x/rwx SM=COW  /usr/lib/dyld

Application Specific Information:
objc[18026]: garbage collection is OFF

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   QtGui                             0x019562b9 QWidget::style() const + 9
1   QtGui                             0x01cc822b QComboBox::hidePopup() + 267
2   QtWebKit                          0x00960e7e WebCore::QtFallbackWebPopupCombo::hidePopup() + 46
3   QtGui                             0x01cc3225 QComboBoxPrivateContainer::eventFilter(QObject*, QEvent*) + 501
4   QtCore                            0x0252434f QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 143
5   QtGui                             0x01910463 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 147
6   QtGui                             0x01919006 QApplication::notify(QObject*, QEvent*) + 7638
7   QtCore                            0x02435b5c QCoreApplication::notifyInternal(QObject*, QEvent*) + 108
8   QtGui                             0x01949c9c QShortcutMap::tryShortcutEvent(QObject*, QKeyEvent*) + 108
9   QtGui                             0x019190b0 QApplication::notify(QObject*, QEvent*) + 7808
10  QtCore                            0x02435b5c QCoreApplication::notifyInternal(QObject*, QEvent*) + 108
11  QtGui                             0x019111fc qt_sendSpontaneousEvent(QObject*, QEvent*) + 60
12  QtGui                             0x0198a377 QKeyMapper::sendKeyEvent(QWidget*, bool, QEvent::Type, int, QFlags<Qt::KeyboardModifier>, QString const&, bool, int, unsigned int, unsigned int, unsigned int, bool*) + 167
13  QtGui                             0x0198b1c6 QKeyMapperPrivate::translateKeyEvent(QWidget*, OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*, bool) + 742
14  QtGui                             0x018c35fc qt_dispatchKeyEvent(void*, QWidget*) + 236
15  QtGui                             0x018b664f -[QCocoaView keyDown:] + 335
16  com.apple.AppKit                  0x926e54cf -[NSWindow sendEvent:] + 10891
17  QtGui                             0x018bc22b -[QCocoaWindow sendEvent:] + 267
18  com.apple.AppKit                  0x9267c6ff -[NSApplication sendEvent:] + 4788
19  QtGui                             0x018bf9dd -[QNSApplication sendEvent:] + 93
20  com.apple.AppKit                  0x9260dc82 -[NSApplication run] + 1007
21  QtGui                             0x018c9a51 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1505
22  QtCore                            0x025239c1 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
23  QtCore                            0x02523d0a QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 170
24  QtCore                            0x02525166 QCoreApplication::exec() + 182
25  com.yourcompany.fancybrowser      0x00004a41 main + 435 (main.cpp:54)
26  com.yourcompany.fancybrowser      0x000045f1 _start + 208
27  com.yourcompany.fancybrowser      0x00004520 start + 40
-------- 8< ---------
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000030b9b7fc

VM Regions Near 0x30b9b7fc:
    MALLOC_TINY            000000000d500000-000000000d600000 [ 1024K] rw-/rwx SM=PRV  
--> 
    __TEXT                 000000008fe53000-000000008fe86000 [  204K] r-x/rwx SM=COW  /usr/lib/dyld

Application Specific Information:
objc[18122]: garbage collection is OFF

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   QtGui                             0x019562b9 QWidget::style() const + 9
1   QtGui                             0x01cc822b QComboBox::hidePopup() + 267
2   QtWebKit                          0x00960e7e WebCore::QtFallbackWebPopupCombo::hidePopup() + 46
3   QtGui                             0x01ccb40f QComboBoxPrivateContainer::mousePressEvent(QMouseEvent*) + 191
4   QtGui                             0x0196509f QWidget::event(QEvent*) + 2351
5   QtGui                             0x01cf3c28 QFrame::event(QEvent*) + 40
6   QtGui                             0x0191048c QApplicationPrivate::notify_helper(QObject*, QEvent*) + 188
7   QtGui                             0x019194bd QApplication::notify(QObject*, QEvent*) + 8845
8   QtCore                            0x02435b5c QCoreApplication::notifyInternal(QObject*, QEvent*) + 108
9   QtGui                             0x019111fc qt_sendSpontaneousEvent(QObject*, QEvent*) + 60
10  QtGui                             0x018c5623 qt_mac_handleMouseEvent(void*, void*, QEvent::Type, Qt::MouseButton) + 2019
11  QtGui                             0x018b55a0 -[QCocoaView mouseDown:] + 64
12  com.apple.AppKit                  0x926e47b1 -[NSWindow sendEvent:] + 7533
13  QtGui                             0x018b353b -[QCocoaPanel sendEvent:] + 267
14  com.apple.AppKit                  0x9267c6ff -[NSApplication sendEvent:] + 4788
15  QtGui                             0x018bf9dd -[QNSApplication sendEvent:] + 93
16  com.apple.AppKit                  0x9260dc82 -[NSApplication run] + 1007
17  QtGui                             0x018c9a51 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1505
18  QtCore                            0x025239c1 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 65
19  QtCore                            0x02523d0a QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 170
20  QtCore                            0x02525166 QCoreApplication::exec() + 182
21  com.yourcompany.fancybrowser      0x00004a41 main + 435 (main.cpp:54)
22  com.yourcompany.fancybrowser      0x000045f1 _start + 208
23  com.yourcompany.fancybrowser      0x00004520 start + 40
-------- 8< ---------

-- 
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