Bug 493937 - KIO, Dolphin, and file open/save dialogs hang in KSambaShare::instance() ppoll() even though samba is not used
Summary: KIO, Dolphin, and file open/save dialogs hang in KSambaShare::instance() ppol...
Status: RESOLVED WORKSFORME
Alias: None
Product: frameworks-kio
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 6.5.0
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: KIO Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-10-01 19:34 UTC by Artur
Modified: 2024-10-05 14:31 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
debug patch (936 bytes, patch)
2024-10-04 11:21 UTC, Harald Sitter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Artur 2024-10-01 19:34:22 UTC
SUMMARY
I recently updated from 5 to 6.5.0. Dolphin freezes for several minutes when started. Other apps also get stuck in the file open/save dialogs. The freeze happens in KSambaShare::instance() ppoll().

There are no samba mounts in use. There are no samba daemons running so it is not network related (like "freeze-on-NFS").

STEPS TO REPRODUCE
1. Start Dolphin...
2. ...Dolphin hangs

1. Start Kolourpaint
2. Press "Open..." button
3. Kolourpaint hangs

OBSERVED RESULT
Application freezes for a couple (2-3?) minutes.

EXPECTED RESULT
Application does not freeze and files are displayed immediately.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Gentoo on amd64
KDE Plasma Version: 6.5.0
KDE Frameworks Version: 6.5.0 
Qt Version: 6.7.2-r2
Samba: 4.18.9

ADDITIONAL INFORMATION

gdb trace from Dolphin getting stuck at startup:
0x00007ffff54496c6 in ppoll () from /lib64/libc.so.6
(gdb) bt 100
#0  0x00007ffff54496c6 in ppoll () at /lib64/libc.so.6
#1  0x00007ffff598f34d in qt_safe_poll(pollfd*, unsigned long, QDeadlineTimer) () at /usr/lib64/libQt6Core.so.6
#2  0x00007ffff58df8e4 in ??? () at /usr/lib64/libQt6Core.so.6
#3  0x00007ffff58e8ae7 in QProcess::waitForFinished(int) () at /usr/lib64/libQt6Core.so.6
#4  0x00007ffff78194d8 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#5  0x00007ffff7819857 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#6  0x00007ffff781ac90 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#7  0x00007ffff781c8ac in ??? () at /usr/lib64/libKF6KIOCore.so.6
#8  0x00007ffff781c98c in ??? () at /usr/lib64/libKF6KIOCore.so.6
#9  0x00007ffff781cacf in KSambaShare::instance() () at /usr/lib64/libKF6KIOCore.so.6
#10 0x00007ffff7829ccd in KFileItem::overlays() const () at /usr/lib64/libKF6KIOCore.so.6
#11 0x00007ffff7e927db in KFileItemModelRolesUpdater::rolesData(KFileItem const&, int) ()
    at /usr/lib64/libdolphinprivate.so.6
#12 0x00007ffff7e93141 in KFileItemModelRolesUpdater::applyResolvedRoles(int, KFileItemModelRolesUpdater::ResolveHint) ()
    at /usr/lib64/libdolphinprivate.so.6
#13 0x00007ffff7e940b4 in KFileItemModelRolesUpdater::slotPreviewFailed(KFileItem const&) ()
    at /usr/lib64/libdolphinprivate.so.6
#14 0x00007ffff5a901e7 in ??? () at /usr/lib64/libQt6Core.so.6
#15 0x00007ffff7a87679 in KIO::PreviewJob::failed(KFileItem const&) () at /usr/lib64/libKF6KIOGui.so.6
#16 0x00007ffff7a88603 in ??? () at /usr/lib64/libKF6KIOGui.so.6
#17 0x00007ffff5a901e7 in ??? () at /usr/lib64/libQt6Core.so.6
#18 0x00007ffff70338c7 in KJob::result(KJob*, KJob::QPrivateSignal) () at /usr/lib64/libKF6CoreAddons.so.6
#19 0x00007ffff703452b in ??? () at /usr/lib64/libKF6CoreAddons.so.6
#20 0x00007ffff5a901e7 in ??? () at /usr/lib64/libQt6Core.so.6
#21 0x00007ffff78edb43 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#22 0x00007ffff78eb1ef in ??? () at /usr/lib64/libKF6KIOCore.so.6
#23 0x00007ffff78e80f7 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#24 0x00007ffff5a901e7 in ??? () at /usr/lib64/libQt6Core.so.6
#25 0x00007ffff5a32b7b in QObject::event(QEvent*) () at /usr/lib64/libQt6Core.so.6
#26 0x00007ffff6b98835 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#27 0x00007ffff5aa7c68 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#28 0x00007ffff5accba7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
    at /usr/lib64/libQt6Core.so.6
#29 0x00007ffff5884da7 in ??? () at /usr/lib64/libQt6Core.so.6
#30 0x00007ffff26f0c84 in ??? () at /usr/lib64/libglib-2.0.so.0
#31 0x00007ffff26f3d27 in ??? () at /usr/lib64/libglib-2.0.so.0
#32 0x00007ffff26f431c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#33 0x00007ffff58833d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQt6Core.so.6
#34 0x00007ffff5ad17ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#35 0x00007ffff5ad196a in QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6
#36 0x00005555555ae474 in ??? ()
#37 0x00007ffff5375f50 in ??? () at /lib64/libc.so.6
#38 0x00007ffff5376009 in __libc_start_main () at /lib64/libc.so.6
#39 0x00005555555aeb55 in ??? ()

gdb trace from Kolourpaint after open file button is pressed:
Thread 1 "kolourpaint" received signal SIGINT, Interrupt.
0x00007ffff5ba76c6 in ppoll () from /lib64/libc.so.6
(gdb) bt 100
#0  0x00007ffff5ba76c6 in ppoll () at /lib64/libc.so.6
#1  0x00007ffff61cb34d in qt_safe_poll(pollfd*, unsigned long, QDeadlineTimer) () at /usr/lib64/libQt6Core.so.6
#2  0x00007ffff611b8e4 in ??? () at /usr/lib64/libQt6Core.so.6
#3  0x00007ffff6124ae7 in QProcess::waitForFinished(int) () at /usr/lib64/libQt6Core.so.6
#4  0x00007ffff79b94d8 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#5  0x00007ffff79b9857 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#6  0x00007ffff79bac90 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#7  0x00007ffff79bc8ac in ??? () at /usr/lib64/libKF6KIOCore.so.6
#8  0x00007ffff79bc98c in ??? () at /usr/lib64/libKF6KIOCore.so.6
#9  0x00007ffff79bcacf in KSambaShare::instance() () at /usr/lib64/libKF6KIOCore.so.6
#10 0x00007ffff79c9ccd in KFileItem::overlays() const () at /usr/lib64/libKF6KIOCore.so.6
#11 0x00007ffff566daa2 in KDirModel::data(QModelIndex const&, int) const () at /usr/lib64/libKF6KIOWidgets.so.6
#12 0x00007ffff612c616 in QSortFilterProxyModel::data(QModelIndex const&, int) const () at /usr/lib64/libQt6Core.so.6
#13 0x00007ffff5686f02 in ??? () at /usr/lib64/libKF6KIOWidgets.so.6
#14 0x00007ffff5687686 in ??? () at /usr/lib64/libKF6KIOWidgets.so.6
#15 0x00007ffff5687d22 in KFileItemDelegate::sizeHint(QStyleOptionViewItem const&, QModelIndex const&) const ()
    at /usr/lib64/libKF6KIOWidgets.so.6
#16 0x00007ffff7056100 in ??? () at /usr/lib64/libQt6Widgets.so.6
#17 0x00007ffff6ff59f0 in ??? () at /usr/lib64/libQt6Widgets.so.6
#18 0x00007ffff6ff5bdd in QListView::doItemsLayout() () at /usr/lib64/libQt6Widgets.so.6
#19 0x00007ffff6ff5dd3 in QListView::rectForIndex(QModelIndex const&) const () at /usr/lib64/libQt6Widgets.so.6
#20 0x00007ffff6ff62d2 in QListView::visualRect(QModelIndex const&) const () at /usr/lib64/libQt6Widgets.so.6
#21 0x00007ffff7e1bd9b in ??? () at /usr/lib64/libKF6KIOFileWidgets.so.6
#22 0x00007ffff7e1d999 in ??? () at /usr/lib64/libKF6KIOFileWidgets.so.6
#23 0x00007ffff62cc1e7 in ??? () at /usr/lib64/libQt6Core.so.6
#24 0x00007ffff7a554c9 in KCoreDirLister::newItems(KFileItemList const&) () at /usr/lib64/libKF6KIOCore.so.6
#25 0x00007ffff7a5a765 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#26 0x00007ffff7a6ea10 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#27 0x00007ffff62cc1e7 in ??? () at /usr/lib64/libQt6Core.so.6
#28 0x00007ffff7a15668 in KIO::ListJob::entries(KIO::Job*, QList<KIO::UDSEntry> const&) () at /usr/lib64/libKF6KIOCore.so.6
#29 0x00007ffff62cc1e7 in ??? () at /usr/lib64/libQt6Core.so.6
#30 0x00007ffff7a8dd1b in ??? () at /usr/lib64/libKF6KIOCore.so.6
#31 0x00007ffff7a8b1ef in ??? () at /usr/lib64/libKF6KIOCore.so.6
#32 0x00007ffff7a880f7 in ??? () at /usr/lib64/libKF6KIOCore.so.6
#33 0x00007ffff62cc1e7 in ??? () at /usr/lib64/libQt6Core.so.6
#34 0x00007ffff626eb7b in QObject::event(QEvent*) () at /usr/lib64/libQt6Core.so.6
#35 0x00007ffff73bb835 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#36 0x00007ffff62e3c68 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#37 0x00007ffff6308ba7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
    at /usr/lib64/libQt6Core.so.6
#38 0x00007ffff60c0da7 in ??? () at /usr/lib64/libQt6Core.so.6
#39 0x00007ffff4de4c84 in ??? () at /usr/lib64/libglib-2.0.so.0
#40 0x00007ffff4de7d27 in ??? () at /usr/lib64/libglib-2.0.so.0
#41 0x00007ffff4de831c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#42 0x00007ffff60bf3d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQt6Core.so.6
#43 0x00007ffff630d7ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#44 0x00007ffff71986c7 in QDialog::exec() () at /usr/lib64/libQt6Widgets.so.6
#45 0x00007ffff71985ce in QDialog::exec() () at /usr/lib64/libQt6Widgets.so.6
#46 0x00005555555f0f0f in ??? ()
#47 0x00005555555f314f in ??? ()
#48 0x00007ffff62cc4c3 in ??? () at /usr/lib64/libQt6Core.so.6
#49 0x00007ffff6b54f56 in QAction::triggered(bool) () at /usr/lib64/libQt6Gui.so.6
#50 0x00007ffff6b579a1 in QAction::activate(QAction::ActionEvent) () at /usr/lib64/libQt6Gui.so.6
#51 0x00007ffff72d3238 in ??? () at /usr/lib64/libQt6Widgets.so.6
#52 0x00007ffff72d345b in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib64/libQt6Widgets.so.6
#53 0x00007ffff710b2fb in QToolButton::mouseReleaseEvent(QMouseEvent*) () at /usr/lib64/libQt6Widgets.so.6
#54 0x00007ffff73cb017 in QWidget::event(QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#55 0x00007ffff73bb835 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#56 0x00007ffff73bc69c in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#57 0x00007ffff62e3c68 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#58 0x00007ffff73c2ff3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () at /usr/lib64/libQt6Widgets.so.6
#59 0x00007ffff73c8c98 in ??? () at /usr/lib64/libQt6Widgets.so.6
#60 0x00007ffff73cc800 in ??? () at /usr/lib64/libQt6Widgets.so.6
#61 0x00007ffff73bb835 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#62 0x00007ffff62e3c68 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#63 0x00007ffff68458cf in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
    at /usr/lib64/libQt6Gui.so.6
#64 0x00007ffff689c89c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQt6Gui.so.6
#65 0x00007fffeffb134e in ??? () at /usr/lib64/qt6/plugins/platforms/../../../libQt6XcbQpa.so.6
#66 0x00007ffff4de4c84 in ??? () at /usr/lib64/libglib-2.0.so.0
#67 0x00007ffff4de7d27 in ??? () at /usr/lib64/libglib-2.0.so.0
#68 0x00007ffff4de831c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#69 0x00007ffff60bf3d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQt6Core.so.6
#70 0x00007ffff630d7ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#71 0x00007ffff630d96a in QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6
#72 0x00005555555a49d5 in ??? ()
#73 0x00007ffff5ad3f50 in ??? () at /lib64/libc.so.6
#74 0x00007ffff5ad4009 in __libc_start_main () at /lib64/libc.so.6
#75 0x00005555555a4cb5 in ??? ()

Installed versions:
kde-frameworks/kio-5.116.0-r2:5/5.116
kde-frameworks/kio-6.5.0:6/6.5
kde-apps/dolphin-24.05.2-r1:6
kde-apps/kolourpaint-24.05.2:6
net-fs/samba-4.18.9:0
dev-qt/qtbase-6.7.2-r5:6/6.7.2
Comment 1 Harald Sitter 2024-10-02 10:38:21 UTC
Either the testparm or net tools are probably broken. You will need to provide a trace with debug symbols to figure out which.
Comment 2 Artur 2024-10-02 17:19:43 UTC
Could you advise which packages should I instrument?

I rebuilt qtbase, kio, kio-extras, samba, net-tools. All with the same gcc toolchain. The problem is still there.

Running testparm returns:
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)
Server role: ROLE_STANDALONE
Comment 3 Artur 2024-10-02 19:48:53 UTC
When running without gdb I can also observe a testparm process that is a zombie.

I rebuilt kio with debug symbols. This is what I get in the stuck state:

(gdb) bt full
#0  0x00007ffff54496c6 in ppoll () at /lib64/libc.so.6
#1  0x00007ffff598f34d in qt_safe_poll(pollfd*, unsigned long, QDeadlineTimer) () at /usr/lib64/libQt6Core.so.6
#2  0x00007ffff58df8e4 in ??? () at /usr/lib64/libQt6Core.so.6
#3  0x00007ffff58e8ae7 in QProcess::waitForFinished(int) () at /usr/lib64/libQt6Core.so.6
#4  0x00007ffff78194d8 in KSambaSharePrivate::runProcess (progName=..., args=..., stdOut=..., stdErr=...)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:88
        process = <incomplete type>
        exec = {d = {d = 0x555555e959a0, ptr = 0x555555e959b0 u"/usr/bin/testparm", size = 17}, static _empty = 0 u'\000'}
#5  0x00007ffff7819857 in KSambaSharePrivate::testparmParamValue (parameterName=...)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:111
        stdErr = {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 '\000'}
        stdOut = {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 '\000'}
        args = {<QListSpecialMethods<QString>> = {<QListSpecialMethodsBase<QString>> = {<No data fields>}, <No data fields>}, d = {d = 0x555555e4e600, ptr = 0x555555e4e610, size = 4}}
#6  0x00007ffff781ac90 in KSambaSharePrivate::setUserSharePath (this=this@entry=0x555555e7b7f0)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:68
        rawString = {d = {d = 0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>, ptr = 0x7fffffffc260 u"", size = 140737488339536}, static _empty = 0 u'\000'}
        fileInfo = {d_ptr = {d = 0x0}}
#7  0x00007ffff781c8ac in KSambaSharePrivate::KSambaSharePrivate (this=0x555555e7b7f0, parent=<optimized out>)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:42
#8  0x00007ffff781c98c in KSambaShare::KSambaShare
    (this=0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>) at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:455
        d = <optimized out>
#9  0x00007ffff781cacf in KSambaShareSingleton::KSambaShareSingleton
    (this=0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>) at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:523
#10 (anonymous namespace)::Q_QGS__instance::innerFunction
    (pointer=0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>) at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:529
#11 QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance>::Holder
    (this=0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>) at /usr/include/qt6/QtCore/qglobalstatic.h:37
--Type <RET> for more, q to quit, c to continue without paging--c
#12 QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance ()
    at /usr/include/qt6/QtCore/qglobalstatic.h:100
        holder = {static ConstructionIsNoexcept = false, static guard = {_q_value = std::atomic<signed char> = { 0 '\000' }}, storage = {instance = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5d588e0 <QObject::staticMetaObject>}, stringdata = 0x7ffff7913940 <(anonymous namespace)::qt_meta_stringdata_CLASSKSambaShareENDCLASS>, data = 0x7ffff79138e0 <qt_meta_data_CLASSKSambaShareENDCLASS>, static_metacall = 0x7ffff7817d00 <KSambaShare::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7ffff7953860 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSKSambaShareENDCLASS_t, QtPrivate::TypeAndForceComplete<KSambaShare, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> > >>, extradata = 0x0}}, d_ptr = 0x0}}}
#13 QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::operator() (this=<optimized out>)
    at /usr/include/qt6/QtCore/qglobalstatic.h:82
#14 KSambaShare::instance () at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:533
#15 0x00007ffff7829ccd in KFileItem::overlays (this=<optimized out>)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/kfileitem.cpp:1261
        path = {d = {d = 0x555555cd5c70, ptr = 0x555555cd5c80 u"/home/hexx/app", size = 14}, static _empty = 0 u'\000'}
        url = {d = 0x555555c72170}
        isLocalUrl = true
        names = {<QListSpecialMethods<QString>> = {<QListSpecialMethodsBase<QString>> = {<No data fields>}, <No data fields>}, d = {d = 0x0, ptr = 0x0, size = 0}}
#16 0x00007ffff7e927db in KFileItemModelRolesUpdater::rolesData(KFileItem const&, int) ()
    at /usr/lib64/libdolphinprivate.so.6
#17 0x00007ffff7e93141 in KFileItemModelRolesUpdater::applyResolvedRoles(int, KFileItemModelRolesUpdater::ResolveHint) ()
    at /usr/lib64/libdolphinprivate.so.6
#18 0x00007ffff7e940b4 in KFileItemModelRolesUpdater::slotPreviewFailed(KFileItem const&) ()
    at /usr/lib64/libdolphinprivate.so.6
#19 0x00007ffff5a901e7 in ??? () at /usr/lib64/libQt6Core.so.6
#20 0x00007ffff7a87679 in KIO::PreviewJob::failed (this=this@entry=0x555555e6cbb0, _t1=...)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0_build/src/gui/KF6KIOGui_autogen/include/moc_previewjob.cpp:203
        _a = {0x0, 0x555555cd9960}
#21 0x00007ffff7a88603 in KIO::PreviewJobPrivate::determineNextFile (this=0x555555cd9890)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/gui/previewjob.cpp:460
        q = 0x555555e6cbb0
#22 0x00007ffff5a901e7 in ??? () at /usr/lib64/libQt6Core.so.6
#23 0x00007ffff70338c7 in KJob::result(KJob*, KJob::QPrivateSignal) () at /usr/lib64/libKF6CoreAddons.so.6
#24 0x00007ffff703452b in ??? () at /usr/lib64/libKF6CoreAddons.so.6
#25 0x00007ffff5a901e7 in ??? () at /usr/lib64/libQt6Core.so.6
#26 0x00007ffff78edb43 in KIO::WorkerInterface::privilegeOperationRequested (this=<optimized out>)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0_build/src/core/KF6KIOCore_autogen/include/moc_workerinterface_p.cpp:565
#27 KIO::WorkerInterface::dispatch (this=0x555555e2ab20, _cmd=102, rawdata=<optimized out>)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/workerinterface.cpp:278
        stream = {<QIODeviceBase> = {<No data fields>}, d = {d = 0x0}, dev = 0x555555e58200, owndev = true, noswap = false, byteorder = QDataStream::BigEndian, ver = 22, q_status = QDataStream::Ok, static NullCode = 4294967295, static ExtendedSize = 4294967294}
        str1 = {d = {d = 0x555555ea7970, ptr = 0x555555ea7980 u"Cannot create thumbnail for directory", size = 37}, static _empty = 0 u'\000'}
        i = 104
        b = 0 '\000'
        ul = 1439271856
#28 0x00007ffff78eb1ef in KIO::WorkerInterface::dispatch (this=0x555555e2ab20)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/workerinterface.cpp:60
        cmd = 102
        data = {d = {d = 0x555555bc3d90, ptr = 0x555555bc3da0 "", size = 82}, static _empty = 0 '\000'}
        ret = <optimized out>
#29 0x00007ffff78e80f7 in KIO::Worker::gotInput (this=0x555555e2ab20)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/worker.cpp:263
#30 0x00007ffff5a901e7 in ??? () at /usr/lib64/libQt6Core.so.6
#31 0x00007ffff5a32b7b in QObject::event(QEvent*) () at /usr/lib64/libQt6Core.so.6
#32 0x00007ffff6b98835 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt6Widgets.so.6
#33 0x00007ffff5aa7c68 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt6Core.so.6
#34 0x00007ffff5accba7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
    at /usr/lib64/libQt6Core.so.6
#35 0x00007ffff5884da7 in ??? () at /usr/lib64/libQt6Core.so.6
#36 0x00007ffff26f0c84 in ??? () at /usr/lib64/libglib-2.0.so.0
#37 0x00007ffff26f3d27 in ??? () at /usr/lib64/libglib-2.0.so.0
#38 0x00007ffff26f431c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#39 0x00007ffff58833d0 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib64/libQt6Core.so.6
#40 0x00007ffff5ad17ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt6Core.so.6
#41 0x00007ffff5ad196a in QCoreApplication::exec() () at /usr/lib64/libQt6Core.so.6
#42 0x00005555555ae474 in ??? ()
#43 0x00007ffff5375f50 in ??? () at /lib64/libc.so.6
#44 0x00007ffff5376009 in __libc_start_main () at /lib64/libc.so.6
#45 0x00005555555aeb55 in ??? ()
Comment 4 Harald Sitter 2024-10-02 20:48:02 UTC
What happens when you run 

`testparm -d0 -s --parameter-name "usershare path"`
Comment 5 Artur 2024-10-03 04:57:43 UTC
`testparm -d0 -s --parameter-name "usershare path"`
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)

bash: /var/lib/samba/usershares: No such file or directory

If I mkdir /var/lib/samba/usershares then I get:
bash: /var/lib/samba/usershares: Is a directory

In both cases testparm executes and exits immediately. Dolphin gets stuch no matter if /var/lib/samba/usershares exists or not.

Can this possibly be a glibc/kernel issue? I am running glibc-2.39-r6 but quite old kernel 4.15.0-rc7.

I also rebuilt qtbase with debug symbols:
#0  0x00007ffff54496c6 in ppoll () at /lib64/libc.so.6
#1  0x00007ffff598f34d in ppoll
    (__ss=<optimized out>, __timeout=<optimized out>, __nfds=<optimized out>, __fds=<optimized out>)
    at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcore_unix.cpp:100
#2  qt_ppoll (timeout_ts=0x7fffffffbd80, nfds=4, fds=0x7fffffffbe00)
    at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcore_unix.cpp:103
#3  qt_ppoll (timeout_ts=0x7fffffffbd80, nfds=4, fds=0x7fffffffbe00)
    at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcore_unix.cpp:100
#4  qt_safe_poll (fds=fds@entry=0x7fffffffbe00, nfds=nfds@entry=4, deadline=...)
    at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/kernel/qcore_unix.cpp:135
        ts = {tv_sec = 29, tv_nsec = 903306472}
        ret = <optimized out>
        remaining = std::chrono::duration = { <optimized out>ns }
#5  0x00007ffff58df8e4 in (anonymous namespace)::QProcessPoller::poll (deadline=..., this=0x7fffffffbe00)
    at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/io/qprocess_unix.cpp:224
#6  QProcessPrivate::waitForFinished (this=this@entry=0x555555bda7d0, deadline=...)
    at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/io/qprocess_unix.cpp:1234
        poller = {pfds = {{fd = -1, events = 1, revents = 0}, {fd = -1, events = 1, revents = 0}, {fd = -1, events = 1, revents = 0}, {fd = 53, events = 1, revents = 0}}}
        ret = <optimized out>
#7  0x00007ffff58e8ae7 in QProcess::waitForFinished (this=this@entry=0x7fffffffbed0, msecs=msecs@entry=30000)
    at /usr/src/debug/dev-qt/qtbase-6.7.2-r5/qtbase-everywhere-src-6.7.2/src/corelib/io/qprocess.cpp:2084
        d = 0x555555bda7d0
        deadline = {static Forever = QDeadlineTimer::ForeverConstant::Forever, t1 = 2273016157442, t2 = 0, type = 1}
#8  0x00007ffff78194d8 in KSambaSharePrivate::runProcess (progName=..., args=..., stdOut=..., stdErr=...)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:88
        process = {<QIODevice> = {<QObject> = {_vptr.QObject = 0x7ffff5d5d1a8 <vtable for QProcess+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff5c0a820 <(anonymous namespace)::qt_meta_stringdata_CLASSQObjectENDCLASS>, data = 0x7ffff5c0a700 <qt_meta_data_CLASSQObjectENDCLASS>, static_metacall = 0x7ffff5a6f860 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7ffff5d60320 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSQObjectENDCLASS_t, QtPrivate::TypeAndForceComplete<QString, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QObject, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QObject*, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::i--Type <RET> for more, q to quit, c to continue without paging--c
ntegral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QString const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QObject*, std::integral_constant<bool, false> > >>, extradata = 0x0}}, d_ptr = {d = 0x555555bda7d0}}, <QIODeviceBase> = {<No data fields>}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5d588e0 <QObject::staticMetaObject>}, stringdata = 0x7ffff5c10f60 <(anonymous namespace)::qt_meta_stringdata_CLASSQIODeviceENDCLASS>, data = 0x7ffff5c10e40 <qt_meta_data_CLASSQIODeviceENDCLASS>, static_metacall = 0x7ffff5a9dad0 <QIODevice::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7ffff5d62960 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSQIODeviceENDCLASS_t, QtPrivate::TypeAndForceComplete<QIODevice, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<int, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<long long, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<int, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<long long, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> > >>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5d62ca0 <QIODevice::staticMetaObject>}, stringdata = 0x7ffff5b7fc60 <(anonymous namespace)::qt_meta_stringdata_CLASSQProcessENDCLASS>, data = 0x7ffff5b7f940 <qt_meta_data_CLASSQProcessENDCLASS>, static_metacall = 0x7ffff58e8bb0 <QProcess::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7ffff5d5bd80 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSQProcessENDCLASS_t, QtPrivate::TypeAndForceComplete<QProcess::ProcessError, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QProcess::ProcessState, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QProcess::ProcessChannel, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QProcess::ProcessChannelMode, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QProcess::InputChannelMode, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QProcess::ExitStatus, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QProcess, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<int, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QProcess::ExitStatus, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<int, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QProcess::ProcessError, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QProcess::ProcessState, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<bool, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<bool, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<bool, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<bool, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> > >>, extradata = 0x0}}}

        exec = {d = {d = 0x555555be24d0, ptr = 0x555555be24e0 u"/usr/bin/testparm", size = 17}, static _empty = 0 u'\000'}
#9  0x00007ffff7819857 in KSambaSharePrivate::testparmParamValue (parameterName=...)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:111
        stdErr = {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 '\000'}
        stdOut = {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 '\000'}
        args = {<QListSpecialMethods<QString>> = {<QListSpecialMethodsBase<QString>> = {<No data fields>}, <No data fields>}, d = {d = 0x555555caccc0, ptr = 0x555555caccd0, size = 4}}
#10 0x00007ffff781ac90 in KSambaSharePrivate::setUserSharePath (this=this@entry=0x5555564f4050)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:68
        rawString = {d = {d = 0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>, ptr = 0x7fffffffc260 u"", size = 140737488339536}, static _empty = 0 u'\000'}
        fileInfo = {d_ptr = {d = 0x0}}
#11 0x00007ffff781c8ac in KSambaSharePrivate::KSambaSharePrivate (this=0x5555564f4050, parent=<optimized out>)
    at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:42
#12 0x00007ffff781c98c in KSambaShare::KSambaShare
    (this=0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>) at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:455
        d = <optimized out>
#13 0x00007ffff781cacf in KSambaShareSingleton::KSambaShareSingleton
    (this=0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>) at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:523
#14 (anonymous namespace)::Q_QGS__instance::innerFunction
    (pointer=0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>) at /usr/src/debug/kde-frameworks/kio-6.5.0/kio-6.5.0/src/core/ksambashare.cpp:529
#15 QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance>::Holder
    (this=0x7ffff795f0c0 <QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance()::holder>) at /usr/include/qt6/QtCore/qglobalstatic.h:37
#16 QGlobalStatic<QtGlobalStatic::Holder<(anonymous namespace)::Q_QGS__instance> >::instance ()
    at /usr/include/qt6/QtCore/qglobalstatic.h:100
        holder = {static ConstructionIsNoexcept = false, static guard = {_q_value = std::atomic<signed char> = { 0 '\000' }}, storage = {instance = {<QObject> = {_vptr.QObject = 0x7ffff7954828 <vtable for KSambaShare+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff5c0a820 <(anonymous namespace)::qt_meta_stringdata_CLASSQObjectENDCLASS>, data = 0x7ffff5c0a700 <qt_meta_data_CLASSQObjectENDCLASS>, static_metacall = 0x7ffff5a6f860 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7ffff5d60320 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSQObjectENDCLASS_t, QtPrivate::TypeAndForceComplete<QString, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QObject, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QObject*, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QString const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QObject*, std::integral_constant<bool, false> > >>, extradata = 0x0}}, d_ptr = {d = 0x555555d690b0}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff5d588e0 <QObject::staticMetaObject>}, stringdata = 0x7ffff7913940 <(anonymous namespace)::qt_meta_stringdata_CLASSKSambaShareENDCLASS>, data = 0x7ffff79138e0 <qt_meta_data_CLASSKSambaShareENDCLASS>, static_metacall = 0x7ffff7817d00 <KSambaShare::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7ffff7953860 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_stringdata_CLASSKSambaShareENDCLASS_t, QtPrivate::TypeAndForceComplete<KSambaShare, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> > >>, extradata = 0x0}}, d_ptr = 0x0}}}
Comment 6 Harald Sitter 2024-10-03 11:14:20 UTC
Very strange. Can you build with a patch perhaps? I may need to add some debug logging to figure this out.
Comment 7 Artur 2024-10-03 19:39:52 UTC
I can try a patch. Some more observations:

1. Renaming /usr/bin/testparm so that it is not found helps and Dolphin never gets stuck (but I'd rather have a working samba installation).

2. I built this minimal test piece based on KSambaSharePrivate::setUserSharePath() using the exact same toolchain & Qt6, and it runs fine (completes immediately):

#include <QDebug>
#include <QProcess>
#include <QStandardPaths>
int main(int argc, char *argv[])
{
    const QStringList args{
        QStringLiteral("-d0"),
        QStringLiteral("-s"),
        QStringLiteral("--parameter-name"),
        QStringLiteral("usershare path"),
    };
    QProcess process;
    process.setProcessChannelMode(QProcess::SeparateChannels);
    const QString exec = QStandardPaths::findExecutable("/usr/bin/testparm");
    if (exec.isEmpty()) {
        qWarning() << "Could not find an executable named:" << "/usr/bin/testparm";
        return -1;
    }
    process.start(exec, args);
    process.waitForFinished();
    QByteArray stdOut = process.readAllStandardOutput();
    QByteArray stdErr = process.readAllStandardError();
    return process.exitCode();
}
Comment 8 Harald Sitter 2024-10-04 11:21:20 UTC
Created attachment 174402 [details]
debug patch

Please patch your KIO and then run the following command to collect output and attach it here

QT_LOGGING_RULES="kf.kio.core=true" dolphin
Comment 9 Artur 2024-10-04 20:02:27 UTC
I built KIO with patch and this is the full output:

$ QT_LOGGING_RULES="kf.kio.core=true" dolphin
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/timeline.so" supports protocols QList("timeline")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/tags.so" supports protocols QList("tags")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/baloosearch.so" supports protocols QList("baloosearch")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/activities.so" supports protocols QList("activities")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/recentlyused.so" supports protocols QList("recentlyused")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/filter.so" supports protocols QList("bzip", "bzip2", "gzip", "lzma", "xz", "zstd")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/info.so" supports protocols QList("info")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/archive.so" supports protocols QList("ar", "sevenz", "tar", "zip")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/fish.so" supports protocols QList("fish")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/thumbnail.so" supports protocols QList("thumbnail")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/sftp.so" supports protocols QList("sftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_filenamesearch.so" supports protocols QList("filenamesearch")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_fonts.so" supports protocols QList("fonts")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/applications.so" supports protocols QList("applications", "programs")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/desktop.so" supports protocols QList("desktop")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/ldap.so" supports protocols QList("ldap", "ldaps")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/akonadi.so" supports protocols QList("akonadi")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_bluetooth.so" supports protocols QList("bluetooth")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_obexftp.so" supports protocols QList("obexftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/bookmarks.so" supports protocols QList("bookmarks")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kdeconnect.so" supports protocols QList("kdeconnect")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_ftp.so" supports protocols QList("ftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_file.so" supports protocols QList("file")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_http.so" supports protocols QList("http", "https", "webdav", "webdavs")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_remote.so" supports protocols QList("remote")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_trash.so" supports protocols QList("trash")
kf.kio.core: Refilling KProtocolInfoFactory cache in the hope to find "mtp"
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/timeline.so" supports protocols QList("timeline")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/tags.so" supports protocols QList("tags")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/baloosearch.so" supports protocols QList("baloosearch")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/activities.so" supports protocols QList("activities")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/recentlyused.so" supports protocols QList("recentlyused")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/filter.so" supports protocols QList("bzip", "bzip2", "gzip", "lzma", "xz", "zstd")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/info.so" supports protocols QList("info")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/archive.so" supports protocols QList("ar", "sevenz", "tar", "zip")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/fish.so" supports protocols QList("fish")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/thumbnail.so" supports protocols QList("thumbnail")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/sftp.so" supports protocols QList("sftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_filenamesearch.so" supports protocols QList("filenamesearch")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_fonts.so" supports protocols QList("fonts")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/applications.so" supports protocols QList("applications", "programs")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/desktop.so" supports protocols QList("desktop")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/ldap.so" supports protocols QList("ldap", "ldaps")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/akonadi.so" supports protocols QList("akonadi")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_bluetooth.so" supports protocols QList("bluetooth")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_obexftp.so" supports protocols QList("obexftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/bookmarks.so" supports protocols QList("bookmarks")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kdeconnect.so" supports protocols QList("kdeconnect")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_ftp.so" supports protocols QList("ftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_file.so" supports protocols QList("file")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_http.so" supports protocols QList("http", "https", "webdav", "webdavs")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_remote.so" supports protocols QList("remote")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_trash.so" supports protocols QList("trash")
kf.kio.core: Refilling KProtocolInfoFactory cache in the hope to find "afc"
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/timeline.so" supports protocols QList("timeline")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/tags.so" supports protocols QList("tags")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/baloosearch.so" supports protocols QList("baloosearch")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/activities.so" supports protocols QList("activities")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/recentlyused.so" supports protocols QList("recentlyused")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/filter.so" supports protocols QList("bzip", "bzip2", "gzip", "lzma", "xz", "zstd")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/info.so" supports protocols QList("info")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/archive.so" supports protocols QList("ar", "sevenz", "tar", "zip")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/fish.so" supports protocols QList("fish")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/thumbnail.so" supports protocols QList("thumbnail")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/sftp.so" supports protocols QList("sftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_filenamesearch.so" supports protocols QList("filenamesearch")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_fonts.so" supports protocols QList("fonts")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/applications.so" supports protocols QList("applications", "programs")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/desktop.so" supports protocols QList("desktop")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/ldap.so" supports protocols QList("ldap", "ldaps")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/akonadi.so" supports protocols QList("akonadi")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_bluetooth.so" supports protocols QList("bluetooth")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_obexftp.so" supports protocols QList("obexftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/bookmarks.so" supports protocols QList("bookmarks")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kdeconnect.so" supports protocols QList("kdeconnect")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_ftp.so" supports protocols QList("ftp")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_file.so" supports protocols QList("file")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_http.so" supports protocols QList("http", "https", "webdav", "webdavs")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_remote.so" supports protocols QList("remote")
kf.kio.core: "/usr/lib64/qt6/plugins/kf6/kio/kio_trash.so" supports protocols QList("trash")
qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::repairRequested(QString)
qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::repairDone(Solid::ErrorType, QVariant, QString)
qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::repairRequested(QString)
qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::repairDone(Solid::ErrorType, QVariant, QString)
kf.kio.core: 0x7f46eaaaf6c0 Creating threaded worker
qt.svg: Invalid path data; path truncated.
kf.kio.core: 0x7f46e9ef86c0 Creating threaded worker
kf.kio.core: 0x7f46e96f76c0 Creating threaded worker
qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::repairRequested(QString)
qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::repairDone(Solid::ErrorType, QVariant, QString)
qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::repairRequested(QString)
qt.core.qobject.connect: QObject::connect: No such signal Solid::Backends::Fstab::FstabStorageAccess::repairDone(Solid::ErrorType, QVariant, QString)
kf.kio.core: 0x7f46e8ef66c0 Creating threaded worker
kf.kio.core: 0x7f46cffff6c0 Creating threaded worker
qt.svg: Invalid path data; path truncated.
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)

/var/lib/samba/usershares

----------------------------------------------------------------
I also run it under strace and it seems like everything gets stuck in the ppoll syscall. I think my next step will be to try a more recent kernel. If ppoll or glibc was broken I should see way more problems by now.

statx(AT_FDCWD, "/usr/local/sbin/testparm", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_ALL, 0x7fffb0a8dfd0) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/local/bin/testparm", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_ALL, 0x7fffb0a8dfd0) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/sbin/testparm", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_ALL, 0x7fffb0a8dfd0) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/bin/testparm", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=42944, ...}) = 0
access("/usr/bin/testparm", X_OK)       = 0
getcwd("/tmp", 4096)                    = 5
statx(AT_FDCWD, "/usr/local/sbin/testparm", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_ALL, 0x7fffb0a8e000) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/local/bin/testparm", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_ALL, 0x7fffb0a8e000) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/sbin/testparm", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_ALL, 0x7fffb0a8e000) = -1 ENOENT (No such file or directory)
statx(AT_FDCWD, "/usr/bin/testparm", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT, STATX_ALL, {stx_mask=STATX_ALL, stx_attributes=0, stx_mode=S_IFREG|0755, stx_size=42944, ...}) = 0
access("/usr/bin/testparm", X_OK)       = 0
pipe2([26, 45], O_CLOEXEC)              = 0
pipe2([46, 47], O_CLOEXEC)              = 0
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
pipe2([48, 49], O_CLOEXEC)              = 0
eventfd2(0, EFD_CLOEXEC)                = 50
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f66ce32ac10) = 26354
write(50, "*\0\0\0\0\0\0\0", 8)         = 8
close(50)                               = 0
close(47)                               = 0
close(26)                               = 0
fcntl(45, F_GETFL)                      = 0x1 (flags O_WRONLY)
fcntl(45, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
ppoll([{fd=46, events=POLLIN}], 1, {tv_sec=29, tv_nsec=999999552}, NULL, 8) = 1 ([{fd=46, revents=POLLHUP}], left {tv_sec=29, tv_nsec=998886341})
read(46, "", 512)                       = 0
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
close(46)                               = 0
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
ppoll([{fd=-1}, {fd=-1}, {fd=-1}, {fd=48, events=POLLIN}], 4, {tv_sec=29, tv_nsec=998541602}, NULL, 8Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed by GnuTLS (e.g. NTLM as a compatibility fallback)

/var/lib/samba/usershares
) = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=26354, si_uid=500, si_status=0, si_utime=1 /* 0.01 s */, si_stime=0} ---
ppoll([{fd=-1}, {fd=-1}, {fd=-1}, {fd=48, events=POLLIN}], 4, {tv_sec=29, tv_nsec=978383752}, NULL, 8) = 0 (Timeout)
write(2, "QProcess: Destroyed while proces"..., 74QProcess: Destroyed while process ("/usr/bin/testparm") is still running.
) = 74
kill(26354, SIGKILL)                    = 0
ppoll([{fd=-1}, {fd=-1}, {fd=-1}, {fd=48, events=POLLIN}], 4, {tv_sec=29, tv_nsec=999999034}, NULL, 8
Comment 10 Artur 2024-10-05 14:11:37 UTC
I upgraded the kernel to 6.11.2 and the problem is gone. It must be one of the rare low-level qt/glibc/kernel interactions.