Summary: | Plasma freeze when systemd automount NFS shares are not mounted | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-activities-stats | Reporter: | Xavier Brochard <xavier> |
Component: | general | Assignee: | Ivan Čukić <ivan.cukic> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | meven.car, nate, plasma-bugs-null, postix |
Priority: | NOR | ||
Version First Reported In: | 5.67.0 | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Xavier Brochard
2020-02-25 17:09:11 UTC
Use of kernel level network mounted shares is not officially supported because problems like this are unavoidable. Use of KIO will not have the same effect. However we have been trying to identify the issues anyway and see if we can use workarounds. Please trigger the freeze and then run sudo gdb --pid `pidof plasmashell` wait for it to attach then type "bt" to get the result and paste that I got similar problems with a classical NFS share that was previously mounted (not even in the same session) and is now unmounted or server is shutdown : Plasma looks like frozen (I guess it is just very slow). Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone! I can't reproduce the bug since march updates. Still investigating. Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please mark the bug as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone! Attaching GDB to plasmashell produce no output (All plasma related dbg packages installed): ----- Attaching to process 1434 bt ----- As I wondered in the past if it could come from Baloo indexing I attached GDB to baloo_file and then baloorunner. Here is the outputs, in case : baloo_file -------- [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007fed7de01bf9 in __GI___poll (fds=0x5573e17ba390, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 29 ../sysdeps/unix/sysv/linux/poll.c: Aucun fichier ou dossier de ce type. (gdb) bt #0 0x00007fed7de01bf9 in __GI___poll (fds=0x5573e17ba390, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007fed7a70a5c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fed7a70a6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007fed7eb060bc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007fed7eaa563a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007fed7eaaedb0 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #6 0x00005573df5bca3c in main (argc=<optimized out>, argv=<optimized out>) at ./src/file/main.cpp:103 -------- baloorunner --------- [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007f8643dcdbf9 in __GI___poll (fds=0x7f8630005cd0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 29 ../sysdeps/unix/sysv/linux/poll.c: Aucun fichier ou dossier de ce type. (gdb) bt #0 0x00007f8643dcdbf9 in __GI___poll (fds=0x7f8630005cd0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007f863ee695c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f863ee696dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f86447340bc in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007f86446d363a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007f86446dcdb0 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #6 0x000055f6dd1d768f in main (argc=<optimized out>, argv=<optimized out>) at ./runners/baloo/baloosearchrunner.cpp:55 ------------ see BT GDB attached to plasmashell doesn't respond either and nothing can be done to quit except hard killing the GDB process. I manage to have a GDB output on plasmashell process. GDB was very very slow in Konsole. Launched it on a tty. /home/Partage is the mount point for the NFS share. It was not mounted as it use systemd automount like below (from /etc/fstab) : -------------- 192.168.1.1:/srv/exports/partage /home/Partage nfs defaults,noauto,user,x-systemd.automount 0 0 ------------- GDB output : ---------------- Attaching to process 3445 [New LWP 3456] [New LWP 3460] [New LWP 3504] [New LWP 3549] [New LWP 3550] [New LWP 3632] [New LWP 3651] [New LWP 3669] [New LWP 3698] [New LWP 3806] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007f0d6db22815 in __GI___lxstat (vers=<optimized out>, name=0x558345a33698 "/home/Partage/devoirs", buf=0x7ffc4f2ad4f0) at ../sysdeps/unix/sysv/linux/wordsize-64/lxstat.c:35 35 ../sysdeps/unix/sysv/linux/wordsize-64/lxstat.c: Aucun fichier ou dossier de ce type. (gdb) bt #0 0x00007f0d6db22815 in __GI___lxstat (vers=<optimized out>, name=0x558345a33698 "/home/Partage/devoirs", buf=0x7ffc4f2ad4f0) at ../sysdeps/unix/sysv/linux/wordsize-64/lxstat.c:35 #1 0x00007f0d6e3beca5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007f0d6e3bc36f in QFSFileEngine::fileFlags(QFlags<QAbstractFileEngine::FileFlag>) const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007f0d6e34daaf in QFile::exists() const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007f0d2ab83193 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ActivitiesStats.so.1 #5 0x00007f0d2ab839d1 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ActivitiesStats.so.1 #6 0x00007f0d2ab83eaf in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ActivitiesStats.so.1 #7 0x00007f0d2ab84474 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5ActivitiesStats.so.1 #8 0x00007f0d2ab78162 in KActivities::Stats::ResultModel::ResultModel(KActivities::Stats::Query, QObject*) () from /usr/lib/x86_64-linux-gnu/libKF5ActivitiesStats.so.1 #9 0x00007f0d2adfc88f in RecentUsageModel::refresh (this=<optimized out>, this=<optimized out>, this=<optimized out>, this=<optimized out>) at ./applets/kicker/plugin/recentusagemodel.cpp:524 #10 0x00007f0d2ade8b64 in QQmlPrivate::QQmlElement<RecentUsageModel>::QQmlElement (this=0x5583459c7100) at /usr/include/x86_64-linux-gnu/qt5/QtQml/qqmlprivate.h:106 #11 QQmlPrivate::createInto<RecentUsageModel> (memory=0x5583459c7100) at /usr/include/x86_64-linux-gnu/qt5/QtQml/qqmlprivate.h:127 #12 0x00007f0d71d69350 in QQmlType::create(QObject**, void**, unsigned long) const () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #13 0x00007f0d71dc17e9 in QQmlObjectCreator::createInstance(int, QObject*, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #14 0x00007f0d71dc0204 in QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*, QV4::CompiledData::Binding const*) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #15 0x00007f0d71dc0923 in QQmlObjectCreator::setupBindings(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #16 0x00007f0d71dc144b in QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData const*) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #17 0x00007f0d71dc1ea8 in QQmlObjectCreator::createInstance(int, QObject*, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #18 0x00007f0d71dc2b70 in QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #19 0x00007f0d71d4b535 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #20 0x00007f0d71d4bd9c in QQmlEnginePrivate::incubate(QQmlIncubator&, QQmlContextData*) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #21 0x00007f0d71d486e7 in QQmlComponent::create(QQmlIncubator&, QQmlContext*, QQmlContext*) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #22 0x00007f0d7242e0f4 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5 #23 0x00007f0d7242e280 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5 #24 0x00007f0d7242f32f in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5 #25 0x00007f0d7242f493 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5 #26 0x00007f0d71d30012 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #27 0x00007f0d71d44bf2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #28 0x00007f0d71d42707 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #29 0x00007f0d71c77b43 in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #30 0x00007f0d71c78a5e in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #31 0x00007f0d71c78bab in QV4::QObjectWrapper::virtualPut(QV4::Managed*, QV4::PropertyKey, QV4::Value const&, QV4::Value*) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #32 0x00007f0d71bf9d58 in QV4::Lookup::setterFallback(QV4::Lookup*, QV4::ExecutionEngine*, QV4::Value&, QV4::Value const&) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #33 0x00007f0d1b947f06 in ?? () #34 0x0000000000000000 in ?? () --------------------------------------- kactivites-stats :/ Filling in the missing bit of the backtrace from the info we have: frame 4 will be src/resultmodel.cpp:508: if (item.resource().startsWith(QLatin1Char('/')) && !QFile(item.resource()).exists()) { It has a check to see if we're on a local file system, but obviously that doesn't work if we have things lying. Maybe we can add Meven's new KMountPoint::isSlow() on the file path first. Some additional informations to the backtrace : It was not the first backtrace, which I couldn't copy, but a second one launched three minutes latter. The first BT showed a file open on the NFS share. But that file was not opened, as the computer was just started and the NFS server was off. The file was briefly opened (in Gwenview) several hours before and the computer was restarted at least two times since that. The user can't umount the NFS share, while he mounted him. Similar behaviour with Calligrawords : if NFS folder doesn't respond, Calligrawords takes a long time to launch, then the window is empty unless the NFS is reachable. The Calligrawords recent document list contains only 3 docs, none of them coming from NFS. No more Plasma freeze since Plasma 5.20. Can be closed. Yay! |