Summary: | crash in Nepomuk::ResourceWatcher::addResource | ||
---|---|---|---|
Product: | [Unmaintained] nepomuk | Reporter: | Sascha Manns <saigkill> |
Component: | libnepomukcore | Assignee: | Sebastian Trueg <trueg> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | cfeck, faure, matej |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/nepomuk-core/3262f04643ae5632077f4f91e3c669c277ded656 | Version Fixed In: | |
Sentry Crash Report: |
Description
Sascha Manns
2012-03-11 21:37:47 UTC
The bug came with 4.8.1 hope this will go away again with 4.8.2 Most certainly also bug 295474. Race condition in nepomuk's resourcedata.cpp Helgrind log: http://www.davidfaure.fr/2012/nepomuk_race The fix I'm about to test: http://www.davidfaure.fr/2012/resourcedata.cpp.diff *** Bug 305537 has been marked as a duplicate of this bug. *** Better patch submitted for review at http://git.reviewboard.kde.org/r/105562 Git commit 3262f04643ae5632077f4f91e3c669c277ded656 by David Faure. Committed on 20/09/2012 at 00:46. Pushed by dfaure into branch 'KDE/4.9'. Fix race conditions in nepomuk's ResourceData. So that no AB/BA deadlocks happen, the rule is that the RM mutex must never be locked after the modificationMutex. It's either modification alone, or RM and then modification. I had to move some code from RM to RD, because RM was using data->m_cache directly, without locking data's mutex first! This new code is not only more threadsafe (no helgrind warning anymore in my tests) but also much better object-oriented, RM is no longer accessing RD's private data directly. REVIEW: 105562 M +48 -11 libnepomukcore/resource/resourcedata.cpp M +13 -3 libnepomukcore/resource/resourcedata.h M +4 -24 libnepomukcore/resource/resourcemanager.cpp http://commits.kde.org/nepomuk-core/3262f04643ae5632077f4f91e3c669c277ded656 Note that KMail, in the KDE/4.9 branch, still uses kdelibs/nepomuk rather than nepomuk-core. So this fix, although applied to KDE/4.9, will only benefit KMail 4.10 (which has been ported to nepomuk-core). Backporting the fix to kdelibs/nepomuk is... quite some work, since the patch doesn't apply at all. |