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

            Bug ID: 464023
           Summary: Deadlock in KToolBarPrivate::init
    Classification: Frameworks and Libraries
           Product: frameworks-kxmlgui
           Version: 5.101.0
          Platform: Archlinux
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kdelibs-b...@kde.org
          Reporter: davis...@gmail.com
  Target Milestone: ---

SUMMARY

Got this weird deadlock for Konsole

```
Thread 7 (Thread 0x7fbfa5bfe6c0 (LWP 1889) "konsole:shlo0"):
#0  0x00007fbfb4e9c4b6 in ?? () from /usr/lib/libc.so.6
#1  0x00007fbfb4e9ecd0 in pthread_cond_wait () from /usr/lib/libc.so.6
#2  0x00007fbfa650c50e in ?? () from /usr/lib/dri/radeonsi_dri.so
#3  0x00007fbfa64bc89c in ?? () from /usr/lib/dri/radeonsi_dri.so
#4  0x00007fbfa650c43c in ?? () from /usr/lib/dri/radeonsi_dri.so
#5  0x00007fbfb4e9f8fd in ?? () from /usr/lib/libc.so.6
#6  0x00007fbfb4f21a60 in ?? () from /usr/lib/libc.so.6

Thread 6 (Thread 0x7fbfa63ff6c0 (LWP 1888) "konsole:sh0"):
#0  0x00007fbfb4e9c4b6 in ?? () from /usr/lib/libc.so.6
#1  0x00007fbfb4e9ecd0 in pthread_cond_wait () from /usr/lib/libc.so.6
#2  0x00007fbfa650c50e in ?? () from /usr/lib/dri/radeonsi_dri.so
#3  0x00007fbfa64bc89c in ?? () from /usr/lib/dri/radeonsi_dri.so
#4  0x00007fbfa650c43c in ?? () from /usr/lib/dri/radeonsi_dri.so
#5  0x00007fbfb4e9f8fd in ?? () from /usr/lib/libc.so.6
#6  0x00007fbfb4f21a60 in ?? () from /usr/lib/libc.so.6

Thread 5 (Thread 0x7fbfacaaa6c0 (LWP 1887) "konsole:disk$0"):
#0  0x00007fbfb4e9c4b6 in ?? () from /usr/lib/libc.so.6
#1  0x00007fbfb4e9ecd0 in pthread_cond_wait () from /usr/lib/libc.so.6
#2  0x00007fbfa650c50e in ?? () from /usr/lib/dri/radeonsi_dri.so
#3  0x00007fbfa64bc89c in ?? () from /usr/lib/dri/radeonsi_dri.so
#4  0x00007fbfa650c43c in ?? () from /usr/lib/dri/radeonsi_dri.so
#5  0x00007fbfb4e9f8fd in ?? () from /usr/lib/libc.so.6
#6  0x00007fbfb4f21a60 in ?? () from /usr/lib/libc.so.6

Thread 4 (Thread 0x7fbfad3ec6c0 (LWP 1886) "konsole:cs0"):
#0  0x00007fbfb4e9c4b6 in ?? () from /usr/lib/libc.so.6
#1  0x00007fbfb4e9ecd0 in pthread_cond_wait () from /usr/lib/libc.so.6
#2  0x00007fbfa650c50e in ?? () from /usr/lib/dri/radeonsi_dri.so
#3  0x00007fbfa64bc89c in ?? () from /usr/lib/dri/radeonsi_dri.so
#4  0x00007fbfa650c43c in ?? () from /usr/lib/dri/radeonsi_dri.so
#5  0x00007fbfb4e9f8fd in ?? () from /usr/lib/libc.so.6
#6  0x00007fbfb4f21a60 in ?? () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7fbfae3976c0 (LWP 1885) "QXcbEventQueue"):
#0  0x00007fbfb4f140bf in poll () from /usr/lib/libc.so.6
#1  0x00007fbfb32ed26b in ?? () from /usr/lib/libxcb.so.1
#2  0x00007fbfb32eed1d in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007fbfaf1f5232 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#4  0x00007fbfb54e431a in ?? () from /usr/lib/libQt5Core.so.5
#5  0x00007fbfb4e9f8fd in ?? () from /usr/lib/libc.so.6
#6  0x00007fbfb4f21a60 in ?? () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7fbfaeb986c0 (LWP 1884) "QDBusConnection"):
#0  0x00007fbfb44cf6ec in ?? () from /usr/lib/libQt5DBus.so.5
#1  0x00007fbfb1109c49 in ?? () from /usr/lib/libdbus-1.so.3
#2  0x00007fbfb44d9bbd in ?? () from /usr/lib/libQt5DBus.so.5
#3  0x00007fbfb56b0b76 in QObject::event(QEvent*) () from
/usr/lib/libQt5Core.so.5
#4  0x00007fbfb568cf7c in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/libQt5Core.so.5
#5  0x00007fbfb56d74d3 in QTimerInfoList::activateTimers() () from
/usr/lib/libQt5Core.so.5
#6  0x00007fbfb56d7b12 in ?? () from /usr/lib/libQt5Core.so.5
#7  0x00007fbfb35df87b in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#8  0x00007fbfb3636c89 in ?? () from /usr/lib/libglib-2.0.so.0
#9  0x00007fbfb35de132 in g_main_context_iteration () from
/usr/lib/libglib-2.0.so.0
#10 0x00007fbfb56d7c8c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt5Core.so.5
#11 0x00007fbfb568574c in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/libQt5Core.so.5
#12 0x00007fbfb54e724f in QThread::exec() () from /usr/lib/libQt5Core.so.5
#13 0x00007fbfb44dbcba in ?? () from /usr/lib/libQt5DBus.so.5
#14 0x00007fbfb54e431a in ?? () from /usr/lib/libQt5Core.so.5
#15 0x00007fbfb4e9f8fd in ?? () from /usr/lib/libc.so.6
#16 0x00007fbfb4f21a60 in ?? () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7fbfaf824ac0 (LWP 1882) "konsole"):
#0  0x00007fbfb4f197fd in syscall () from /usr/lib/libc.so.6
#1  0x00007fbfb54e057c in QSemaphore::acquire(int) () from
/usr/lib/libQt5Core.so.5
#2  0x00007fbfb56bdb94 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fbfb44dceba in ?? () from /usr/lib/libQt5DBus.so.5
#4  0x00007fbfb44d5250 in QDBusConnection::connect(QString const&, QString
const&, QString const&, QString const&, QStringList const&, QString const&,
QObject*, char const*) () from /usr/lib/libQt5DBus.so.5
#5  0x00007fbfb44d535e in QDBusConnection::connect(QString const&, QString
const&, QString const&, QString const&, QObject*, char const*) () from
/usr/lib/libQt5DBus.so.5
#6  0x00007fbfb6a5b5c7 in KToolBarPrivate::init (this=0x5619d03d80c0,
readConfig=<optimized out>, _isMainToolBar=<optimized out>) at
/usr/src/debug/kxmlgui-git/kxmlgui/src/ktoolbar.cpp:269
#7  0x00007fbfb6a5bc15 in KToolBar::KToolBar (this=0x5619d036c720,
objectName=..., parent=0x5619c319f060, readConfig=<optimized out>) at
/usr/src/debug/kxmlgui-git/kxmlgui/src/ktoolbar.cpp:871
#8  0x00007fbfb6a649ea in KXMLGUIBuilder::createContainer (this=0x5619c319f098,
parent=0x0, index=0, element=..., containerAction=@0x7ffc61288b28: 0x0) at
/usr/include/c++/12.2.0/bits/unique_ptr.h:191
#9  0x00007fbfb6a747ee in KXMLGUI::BuildHelper::createContainer
(this=this@entry=0x7ffc61288c90, parent=0x0, index=0, element=...,
containerAction=@0x7ffc61288b28: 0x0, builder=builder@entry=0x7ffc61288b30) at
/usr/src/debug/kxmlgui-git/kxmlgui/src/kxmlguifactory_p.cpp:772
#10 0x00007fbfb6a77548 in KXMLGUI::BuildHelper::processContainerElement
(this=0x7ffc61288c90, e=..., tag=..., name=...) at
/usr/src/debug/kxmlgui-git/kxmlgui/src/kxmlguifactory_p.cpp:703
#11 0x00007fbfb6a77cc5 in KXMLGUI::BuildHelper::processElement
(this=0x7ffc61288c90, e=...) at
/usr/src/debug/kxmlgui-git/kxmlgui/src/kxmlguifactory_p.cpp:509
#12 0x00007fbfb6a77dc4 in KXMLGUI::BuildHelper::build
(this=this@entry=0x7ffc61288c90, element=...) at
/usr/src/debug/kxmlgui-git/kxmlgui/src/kxmlguifactory_p.cpp:495
#13 0x00007fbfb6a71686 in KXMLGUIFactory::addClient (this=0x5619c3495840,
client=0x5619c3800688) at
/usr/src/debug/kxmlgui-git/kxmlgui/src/kxmlguifactory.cpp:260
#14 0x00007fbfb6c977e1 in
Konsole::MainWindow::activeViewChanged(Konsole::SessionController*) () from
/usr/lib/libkonsoleapp.so.1
#15 0x00007fbfb56bda91 in ?? () from /usr/lib/libQt5Core.so.5
#16 0x00007fbfb6b24ae7 in
Konsole::ViewManager::activeViewChanged(Konsole::SessionController*) () from
/usr/lib/libkonsoleprivate.so.1
#17 0x00007fbfb56bda91 in ?? () from /usr/lib/libQt5Core.so.5
#18 0x00007fbfb6bc0b84 in
Konsole::SessionController::viewFocused(Konsole::SessionController*) () from
/usr/lib/libkonsoleprivate.so.1
#19 0x00007fbfb6bd0411 in
Konsole::SessionController::viewFocusChangeHandler(bool) () from
/usr/lib/libkonsoleprivate.so.1
#20 0x00007fbfb56bda91 in ?? () from /usr/lib/libQt5Core.so.5
#21 0x00007fbfb6b255c7 in Konsole::TerminalDisplay::compositeFocusChanged(bool)
() from /usr/lib/libkonsoleprivate.so.1
#22 0x00007fbfb56bda91 in ?? () from /usr/lib/libQt5Core.so.5
#23 0x00007fbfb6b978d2 in ?? () from /usr/lib/libkonsoleprivate.so.1
#24 0x00007fbfb568cc02 in
QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) ()
from /usr/lib/libQt5Core.so.5
#25 0x00007fbfb6378b4c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/libQt5Widgets.so.5
#26 0x00007fbfb568cf98 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/libQt5Core.so.5
#27 0x00007fbfb6374bec in QApplicationPrivate::setFocusWidget(QWidget*,
Qt::FocusReason) () from /usr/lib/libQt5Widgets.so.5
#28 0x00007fbfb63a97f7 in QWidget::setFocus(Qt::FocusReason) () from
/usr/lib/libQt5Widgets.so.5
#29 0x00007fbfb6399b7f in QStackedLayout::setCurrentIndex(int) () from
/usr/lib/libQt5Widgets.so.5
#30 0x00007fbfb654c29a in ?? () from /usr/lib/libQt5Widgets.so.5
#31 0x00007fbfb56bdc40 in ?? () from /usr/lib/libQt5Core.so.5
#32 0x00007fbfb652bbe3 in QTabBar::currentChanged(int) () from
/usr/lib/libQt5Widgets.so.5
#33 0x00007fbfb56bda91 in ?? () from /usr/lib/libQt5Core.so.5
#34 0x00007fbfb636bec7 in QAction::triggered(bool) () from
/usr/lib/libQt5Widgets.so.5
#35 0x00007fbfb63718c7 in QAction::activate(QAction::ActionEvent) () from
/usr/lib/libQt5Widgets.so.5
#36 0x00007fbfb637198e in QAction::event(QEvent*) () from
/usr/lib/libQt5Widgets.so.5
#37 0x00007fbfb6378b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib/libQt5Widgets.so.5
#38 0x00007fbfb568cf98 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
() from /usr/lib/libQt5Core.so.5
#39 0x00007fbfb5b7401d in QShortcutMap::dispatchEvent(QKeyEvent*) () from
/usr/lib/libQt5Gui.so.5
#40 0x00007fbfb5b6a887 in QShortcutMap::tryShortcut(QKeyEvent*) () from
/usr/lib/libQt5Gui.so.5
#41 0x00007fbfb5b2a038 in QWindowSystemInterface::handleShortcutEvent(QWindow*,
unsigned long, int, QFlags<Qt::KeyboardModifier>, unsigned int, unsigned int,
unsigned int, QString const&, bool, unsigned short) () from
/usr/lib/libQt5Gui.so.5
#42 0x00007fbfb5b3f9f2 in
QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*)
() from /usr/lib/libQt5Gui.so.5
#43 0x00007fbfb5b28885 in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/lib/libQt5Gui.so.5
#44 0x00007fbfaf1f78b0 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#45 0x00007fbfb35df87b in g_main_context_dispatch () from
/usr/lib/libglib-2.0.so.0
#46 0x00007fbfb3636c89 in ?? () from /usr/lib/libglib-2.0.so.0
#47 0x00007fbfb35de132 in g_main_context_iteration () from
/usr/lib/libglib-2.0.so.0
#48 0x00007fbfb56d7c8c in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
from /usr/lib/libQt5Core.so.5
#49 0x00007fbfb568574c in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
/usr/lib/libQt5Core.so.5
#50 0x00007fbfb5690269 in QCoreApplication::exec() () from
/usr/lib/libQt5Core.so.5
#51 0x00005619c2702b65 in ?? ()
#52 0x00007fbfb4e3c290 in ?? () from /usr/lib/libc.so.6
#53 0x00007fbfb4e3c34a in __libc_start_main () from /usr/lib/libc.so.6
#54 0x00005619c2703425 in ?? ()
```

It seems to be related with a lot of notification spam as I printed binary file
with bells :D
Also might be QDBusConnection bug as seems it got stuck there

https://github.com/qt/qtbase/blob/v5.15.8-lts-lgpl/src/dbus/qdbusintegrator.cpp#L1594

```
} else if (objThread != QThread::currentThread()) {
            // looped-back message, targeting another thread:
            // synchronize with it
            postEventToThread(HandleObjectCallPostEventAction, result.obj,
                              new
QDBusActivateObjectEvent(QDBusConnection(this), this, result,
                                                           usedLength, msg,
&sem));
            semWait = true;
```

OBSERVED RESULT

Konsole got stuck and didn't repaint window and didn't respond in any way

EXPECTED RESULT

To be responsive

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Arch Linux
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.102.0
Qt Version: 5.15.8

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

Reply via email to