Summary: | Muon crash when browsing app | ||
---|---|---|---|
Product: | [Unmaintained] muon | Reporter: | Meriuță Cornel <meriutacornel> |
Component: | misc | Assignee: | Jonathan Thomas <echidnaman> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aleixpol, marcello.tescari, morban, sitter, stasnel, tsoglanos79 |
Priority: | LO | Keywords: | drkonqi |
Version: | 2.1.2 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Meriuță Cornel
2014-01-27 18:57:25 UTC
*** This bug has been marked as a duplicate of bug 327406 *** Actually this likely is not a duplicate at all. While it results in the same frames as the other bug, it has a completely different wind up. cache.cpp void Update() { // Evil but Necessary, libapt-pkg not thread safe, afaict QCoreApplication::processEvents(); } so it triggers event processing, which in turn leads to calls inside the qapt::backend which in turn explodes because it is in an inconsistent state there one assumes technically this can crash anywhere, at any time... Git commit bd2de61727d600f422a192b71433d4eadf4963fa by Harald Sitter. Committed on 29/01/2014 at 01:36. Pushed by sitter into branch 'master'. Revert "Evil but Necessary, libapt-pkg not thread safe, afaict." This reverts commit 362afebca1323573f2b66d557e9c92ab97886ddb. Adhoc testing suggested that there is next to no delay in cache opening, the eventprocessing however essentially causes in-thread-pseudo-threading which can easily cause crashes if the application does not add access guards around QApt::Backend. Should this become a problem in the future again the correct approach would either be to make QApt threadable or thread aptpkg inside Backend itself and introduce appropriate guarding. Please note that it is terribly unlikely for blocking open to cause any problems as muon's initial ::init() is threaded and if an application has issues with initial open they may as well add access guards and thread ::init() to unblock the UI. Subsequent cache opens will just about always hit the disk cache and therefore take no time at all. CCMAIL: echidnaman@kubuntu.org M +1 -11 src/cache.cpp http://commits.kde.org/libqapt/bd2de61727d600f422a192b71433d4eadf4963fa Moving bug to muon/misc as it still represents an issue inside libmuons' ReviewModel/Backend which checks isFetching, however ReviewBackend's isFetching does not take the ApplicationBackend's isFetching into account. So it is not correctly guarding the QApt::Backend from accesses during init(). http://quickgit.kde.org/?p=muon.git&a=commit&h=b9e1b1103474810b308794b58a775b508a279d44 This commit should fix the bug, please re-open if it's not the case. *** Bug 327626 has been marked as a duplicate of this bug. *** *** Bug 327030 has been marked as a duplicate of this bug. *** *** Bug 331055 has been marked as a duplicate of this bug. *** |