| Summary: | Dolphin is unresponsive for a second or two on startup | ||
|---|---|---|---|
| Product: | [Unmaintained] nepomuk | Reporter: | Kai Uwe Broulik <kde> |
| Component: | widgets - FileMetadataWidget | Assignee: | Nepomuk Bugs Coordination <nepomuk-bugs> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | emmanuelpescosta099, frank78ac, me |
| Priority: | NOR | ||
| Version First Reported In: | 4.10.80 | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | http://commits.kde.org/nepomuk-widgets/376b6de7916138f75c8c08b4fdfc1a6fbf26102d | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
|
Description
Kai Uwe Broulik
2013-07-01 20:19:35 UTC
Thanks for the bug report, but I cannot reproduce the problem. Please run Dolphin in gdb, stop it using Ctrl+Z while it's frozen, and provide a backtrace. It would also be interesting which view mode you use, what the folder contents are sorted by, and how many folders/files are in places where you can reproduce this problem. I can reproduce this problem with enabled tooltips or with a visible information panel. The freeze happenes somewhere in nepomuk-widgets/nepomuk-core. (FileMetaDataWidget calls userVisibleRoles which blocks Dolphin) Thanks Emmanuel for testing it. I guess we should reassign to Nepomuk then. However, I still think that a backtrace would be helpful (I cannot test it myself because I'm currently at the machine where I build kde-baseapps master on top of kdelibs 4.10 with some hacks). Could you please provide be a backtrace? You'll have to gdb into dolphin when it is frozen.
gdb --pid DolphinPID
> thread apply all backtrace
Here is the backtrace: (Compiled kdelibs, nepomuk-core, nepomuk-widgets and kde-baseapps from git master)
(gdb) thread apply all backtrace
Thread 3 (Thread 0x7fffd3df2700 (LWP 30849)):
#0 0x00007ffff1d6b08d in poll () from /usr/lib/libc.so.6
#1 0x00007fffed3e9094 in ?? () from /usr/lib/libglib-2.0.so.0
#2 0x00007fffed3e919c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3 0x00007ffff2e918f6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4 0x00007ffff2e6396f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5 0x00007ffff2e63c65 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6 0x00007ffff2d6267f in QThread::exec() () from /usr/lib/libQtCore.so.4
#7 0x00007ffff2e45113 in ?? () from /usr/lib/libQtCore.so.4
#8 0x00007ffff2d64d1f in ?? () from /usr/lib/libQtCore.so.4
#9 0x00007ffff2ad5dd2 in start_thread () from /usr/lib/libpthread.so.0
#10 0x00007ffff1d73cdd in clone () from /usr/lib/libc.so.6
Thread 2 (Thread 0x7fffd8c35700 (LWP 30846)):
#0 0x00007ffff1d6cd03 in select () from /usr/lib/libc.so.6
#1 0x00007ffff2e41ed3 in ?? () from /usr/lib/libQtCore.so.4
#2 0x00007ffff2d64d1f in ?? () from /usr/lib/libQtCore.so.4
#3 0x00007ffff2ad5dd2 in start_thread () from /usr/lib/libpthread.so.0
#4 0x00007ffff1d73cdd in clone () from /usr/lib/libc.so.6
Thread 1 (Thread 0x7ffff7f7e7c0 (LWP 30838)):
#0 0x00007ffff1d6cd03 in select () from /usr/lib/libc.so.6
#1 0x00007fffd810c6e1 in ?? () from /usr/lib64/virtodbc_r.so
#2 0x00007fffd8111451 in ?? () from /usr/lib64/virtodbc_r.so
#3 0x00007fffd80dd7cd in ?? () from /usr/lib64/virtodbc_r.so
#4 0x00007fffd80e1835 in ?? () from /usr/lib64/virtodbc_r.so
#5 0x00007fffd8c4c5e4 in ?? () from /usr/lib/libiodbc.so.2
#6 0x00007fffd8c4c914 in SQLExecDirect () from /usr/lib/libiodbc.so.2
#7 0x00007fffd8eaa257 in ?? () from /usr/lib/soprano/libsoprano_virtuosobackend.so
#8 0x00007fffd8eaa580 in ?? () from /usr/lib/soprano/libsoprano_virtuosobackend.so
#9 0x00007fffd8e94e72 in ?? () from /usr/lib/soprano/libsoprano_virtuosobackend.so
#10 0x00007fffd8e95211 in ?? () from /usr/lib/soprano/libsoprano_virtuosobackend.so
#11 0x00007fffd8e953d8 in ?? () from /usr/lib/soprano/libsoprano_virtuosobackend.so
#12 0x00007ffff6458dc6 in Nepomuk2::MainModel::executeQuery (this=this@entry=0x8b8770, query=..., language=language@entry=Soprano::Query::QueryLanguageSparql, userQueryLanguage=...)
at /home/emmanuel/kde-devel/src/nepomuk-core/libnepomukcore/resource/nepomukmainmodel.cpp:210
#13 0x00007ffff6460a03 in Nepomuk2::Types::EntityPrivate::load (this=0x12203d0) at /home/emmanuel/kde-devel/src/nepomuk-core/libnepomukcore/types/entity.cpp:76
#14 0x00007ffff64601b8 in Nepomuk2::Types::EntityPrivate::init (this=0x12203d0) at /home/emmanuel/kde-devel/src/nepomuk-core/libnepomukcore/types/entity.cpp:51
#15 0x00007ffff6460476 in Nepomuk2::Types::Entity::userVisible (this=this@entry=0x7fffffffd8d0) at /home/emmanuel/kde-devel/src/nepomuk-core/libnepomukcore/types/entity.cpp:293
#16 0x00007ffff673d02b in Nepomuk2::MetadataFilter::filter (this=<optimized out>, data=...) at /home/emmanuel/kde-devel/src/nepomuk-widgets/ui/metadatafilter.cpp:167
#17 0x00007ffff6732258 in Nepomuk2::FileMetaDataWidget::Private::slotLoadingFinished (this=0xf6e400) at /home/emmanuel/kde-devel/src/nepomuk-widgets/ui/filemetadatawidget.cpp:145
#18 0x00007ffff2e788ec in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#19 0x00007ffff6735260 in Nepomuk2::FileMetaDataProvider::loadingFinished (this=<optimized out>) at /home/emmanuel/kde-devel/build/nepomuk-widgets/filemetadataprovider_p.moc:109
#20 0x00007ffff6736a39 in Nepomuk2::FileMetaDataProvider::Private::slotLoadingFinished (this=0xde9270, loader=0x0) at /home/emmanuel/kde-devel/src/nepomuk-widgets/ui/filemetadataprovider.cpp:251
#21 0x00007ffff2e788ec in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#22 0x00007ffff6728fef in Nepomuk2::ResourceLoader::finished (this=<optimized out>, _t1=0x138df70) at /home/emmanuel/kde-devel/build/nepomuk-widgets/moc_resourceloader.cpp:103
#23 0x00007ffff2e7cc5e in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#24 0x00007ffff3fd80ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#25 0x00007ffff3fde670 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#26 0x00007ffff4cec7b6 in KApplication::notify (this=0x7fffffffe4b0, receiver=0x138df70, event=0x7fffc401c310) at /home/emmanuel/kde-devel/src/kdelibs/kdeui/kernel/kapplication.cpp:311
#27 0x00007ffff2e64c3d in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#28 0x00007ffff2e67c8f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#29 0x00007ffff2e91ef3 in ?? () from /usr/lib/libQtCore.so.4
#30 0x00007fffed3e8da6 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#31 0x00007fffed3e90f8 in ?? () from /usr/lib/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#32 0x00007fffed3e919c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#33 0x00007ffff2e918d5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#34 0x00007ffff4075066 in ?? () from /usr/lib/libQtGui.so.4
#35 0x00007ffff2e6396f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#36 0x00007ffff2e63c65 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#37 0x00007ffff2e68ccb in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#38 0x00007ffff7b6eb2a in kdemain (argc=1, argv=0x7fffffffe5e8) at /home/emmanuel/kde-devel/src/kde-baseapps/dolphin/src/main.cpp:93
#39 0x00007ffff1cafa15 in __libc_start_main () from /usr/lib/libc.so.6
#40 0x0000000000400891 in _start ()
Git commit 376b6de7916138f75c8c08b4fdfc1a6fbf26102d by Vishesh Handa. Committed on 07/07/2013 at 22:08. Pushed by vhanda into branch 'master'. ResourceLoader: Load all the associated properties as well When using the FileMetadataWidget, the MetadatFilter class is used which internally uses Types::Property. This Property class is unfortunately synchronous and can block for a bit. Therefore we load all the properties in this separate thread so that they are always there in the cache. This never used to be a problem earlier because connecting to the Nepomuk Server used to be quite fast. Since now we connect directly to virtuoso, it can take some time and block. M +8 -1 ui/resourceloader.cpp http://commits.kde.org/nepomuk-widgets/376b6de7916138f75c8c08b4fdfc1a6fbf26102d |