Bug 344032 - plasmashell gets stuck in Plasma::ThemePrivate::saveSvgElementsCache if plasma-svgelements-default_v0.9.7.lock file is present
Summary: plasmashell gets stuck in Plasma::ThemePrivate::saveSvgElementsCache if plasm...
Status: RESOLVED FIXED
Alias: None
Product: libplasma
Classification: Frameworks and Libraries
Component: libplasma (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Marco Martin
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-11 12:17 UTC by Bhushan Shah
Modified: 2015-02-19 10:49 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bhushan Shah 2015-02-11 12:17:22 UTC
1) touch ~/.cache/plasma-svgelements-default_v0.9.7.lock
2) restart plasmashell
3) after sometime plasmashell gets stuck

I agree that lockfile should not be present but if it is present things should not hang like it is being currently. backtrace below

Thread 1 (Thread 0x7f10a312d780 (LWP 12011)):
#0  0x00007f109df7861d in nanosleep () from /usr/lib/libc.so.6
#1  0x00007f109e6cb1ad in ?? () from /usr/lib/libQt5Core.so.5
#2  0x00007f109e6159d8 in QThread::msleep(unsigned long) () from /usr/lib/libQt5Core.so.5
#3  0x00007f109e727340 in QLockFile::tryLock(int) () from /usr/lib/libQt5Core.so.5
#4  0x00007f109f863bb2 in KConfigIniBackend::lock (this=0x1bc4d90) at /home/bshah/aur/kconfig-git/src/kconfig/src/core/kconfigini.cpp:634
#5  0x00007f109f84c4d0 in lockLocal (this=<optimized out>) at /home/bshah/aur/kconfig-git/src/kconfig/src/core/kconfig.cpp:104
#6  KConfig::sync (this=<optimized out>) at /home/bshah/aur/kconfig-git/src/kconfig/src/core/kconfig.cpp:415
#7  0x00007f10a1b6d48a in Plasma::ThemePrivate::saveSvgElementsCache (this=<optimized out>) at /home/bshah/aur/plasma-framework-git/src/plasma-framework/src/plasma/private/theme_p.cpp:536
#8  0x00007f10a1b74cee in Plasma::ThemePrivate::qt_static_metacall (_o=0x1ad44a0, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /home/bshah/aur/plasma-framework-git/src/build/src/plasma/moc_theme_p.cpp:127
#9  0x00007f109e830339 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#10 0x00007f109e83e0a8 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQt5Core.so.5
#11 0x00007f109e831473 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#12 0x00007f109f2f0d8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#13 0x00007f109f2f6370 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#14 0x00007f109e800a9b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#15 0x00007f109e856f6d in QTimerInfoList::activateTimers() () from /usr/lib/libQt5Core.so.5
#16 0x00007f109e8573b1 in ?? () from /usr/lib/libQt5Core.so.5
#17 0x00007f109ab16a0d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#18 0x00007f109ab16cf8 in ?? () from /usr/lib/libglib-2.0.so.0
#19 0x00007f109ab16dac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#20 0x00007f109e858077 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#21 0x00007f109e7fe532 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#22 0x00007f109e805f0c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#23 0x00000000004328ef in main (argc=<optimized out>, argv=<optimized out>) at /home/bshah/aur/plasma-workspace-git/src/plasma-workspace/shell/main.cpp:150

Reproducible: Always
Comment 1 David Edmundson 2015-02-19 10:49:34 UTC
Git commit 5a28172868cdc51607e0e87172d4d4fb6f01b896 by David Edmundson.
Committed on 12/02/2015 at 21:29.
Pushed by davidedmundson into branch 'master'.

Avoid code path that leaves local config locked

The local config file gets locked on line 415, if we return early we
need to unlock it.

REVIEW: 122549

M  +6    -0    src/core/kconfig.cpp

http://commits.kde.org/kconfig/5a28172868cdc51607e0e87172d4d4fb6f01b896