https://bugs.kde.org/show_bug.cgi?id=381793

--- Comment #11 from David Faure <fa...@kde.org> ---
ASAN just says null pointer.

=
==20566==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc
0x7f6d71ccbfa0 bp 0x7ffcac0881c0 sp 0x7ffcac0881b0 T0)
==20566==The signal is caused by a READ memory access.
==20566==Hint: address points to the zero page.
    #0 0x7f6d71ccbf9f in QMetaObject::cast(QObject const*) const
/d/qt/5/kde/qtbase/src/corelib/kernel/qmetaobject.cpp:374
    #1 0x7f6d71ccbf74 in QMetaObject::cast(QObject*) const
/d/qt/5/kde/qtbase/src/corelib/kernel/qmetaobject.cpp:363
    #2 0x7f6d7801e15e in QAction* qobject_cast<QAction*>(QObject*)
/d/qt/5/inst/include/QtCore/qobject.h:508
    #3 0x7f6d7801e15e in KActionConflictDetector::eventFilter(QObject*,
QEvent*) /d/kde/src/5/frameworks/kxmlgui/src/kactionconflictdetector.cpp:45
    #4 0x7f6d71cc28c1 in
QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject*, QEvent*)
/d/qt/5/kde/qtbase/src/corelib/kernel/qcoreapplication.cpp:1203
    #5 0x7f6d72f1e799 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
/d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:3674
    #6 0x7f6d72f1e70e in QApplication::notify(QObject*, QEvent*)
/d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:3653
    #7 0x7f6d71cc262d in QCoreApplication::notifyInternal2(QObject*, QEvent*)
/d/qt/5/kde/qtbase/src/corelib/kernel/qcoreapplication.cpp:1095
    #8 0x7f6d71cc2f79 in QCoreApplication::sendEvent(QObject*, QEvent*)
/d/qt/5/kde/qtbase/src/corelib/kernel/qcoreapplication.cpp:1490
    #9 0x7f6d72f18e83 in QApplication::setActiveWindow(QWidget*)
/d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:2043
    #10 0x7f6d72f578d3 in QWidgetPrivate::deactivateWidgetCleanup()
/d/qt/5/kde/qtbase/src/widgets/kernel/qwidget.cpp:2480
    #11 0x7f6d72f66a04 in QWidgetPrivate::hide_sys()
/d/qt/5/kde/qtbase/src/widgets/kernel/qwidget.cpp:8270
    #12 0x7f6d72f667d7 in QWidgetPrivate::hide_helper()
/d/qt/5/kde/qtbase/src/widgets/kernel/qwidget.cpp:8213
    #13 0x7f6d72f67075 in QWidgetPrivate::setVisible(bool)
/d/qt/5/kde/qtbase/src/widgets/kernel/qwidget.cpp:8418
    #14 0x7f6d72f66b8b in QWidget::setVisible(bool)
/d/qt/5/kde/qtbase/src/widgets/kernel/qwidget.cpp:8320
    #15 0x7f6d72f666fb in QWidget::hide()
/d/qt/5/kde/qtbase/src/widgets/kernel/qwidget.cpp:8187
    #16 0x7f6d72f67774 in
QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode)
/d/qt/5/kde/qtbase/src/widgets/kernel/qwidget.cpp:8547
    #17 0x7f6d72f54a0d in QWidget::~QWidget()
/d/qt/5/kde/qtbase/src/widgets/kernel/qwidget.cpp:1626
    #18 0x7f6d730d7f6d in QMainWindow::~QMainWindow()
/d/qt/5/kde/qtbase/src/widgets/widgets/qmainwindow.cpp:377
    #19 0x7f6d7803c412 in KMainWindow::~KMainWindow()
/d/kde/src/5/frameworks/kxmlgui/src/kmainwindow.cpp:399
    #20 0x7f6d90fa8b47 in KonqMainWindow::~KonqMainWindow()
/d/kde/src/5/kde/applications/konqueror/src/konqmainwindow.cpp:350:1

At the time when QApplication::setActiveWindow(nullptr) is called,
QApplicationPrivate::focus_widget is a dangling pointer.
With some qDebugs I could see that it was a WebEngineView earlier
(webenginepart's QWebEngineView subclass), and that it indeed got deleted
meanwhile.

QDEBUG : ViewMgrTest::testPopupNewWindow() WebEngineView::WebEngineView
WebEngineView(0x55e6295c0190)
QDEBUG : ViewMgrTest::testPopupNewWindow() QApplicationPrivate::setFocusWidget
focus_widget= WebEngineView(0x55e6295c0190)
QDEBUG : ViewMgrTest::testPopupNewWindow() checkSecondWindowHasOneTab
WebEngineView(0x55e6295c0190)
QDEBUG : ViewMgrTest::testPopupNewWindow() WebEngineView::~WebEngineView
WebEngineView(0x55e6295c0190)
QDEBUG : ViewMgrTest::testPopupNewWindow() QApplication::setActiveWindow
sending event to focus_widget= 0x55e6295c0190  <<< DANGLING

Definitely looks like a Qt bug.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to