Summary: | deadlock associated with lowpass filter dialog? | ||
---|---|---|---|
Product: | [Applications] kst | Reporter: | Timo Lindfors <timo.lindfors> |
Component: | general | Assignee: | kst |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | arwalker |
Priority: | NOR | ||
Version: | 1.x | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Timo Lindfors
2010-03-25 22:58:34 UTC
This is indeed a classic deadlock. The update thread, in updating a curve, holds a writeLock on the input vectors to the curve, and attempts to get a writeLock on the filter output. The user-interface thread, in updating the data manager, holds a readLock on the filter, and attempts to get a readLock on the output vector of the filter (also the input vector to the curve). This could happen with any of the plugins and is not specific to the filter used. Or to express it another way, one thread is locking the parent and then the child, while the second thread is locking in the reverse order. SVN commit 1108735 by arwalker: BUG:232159 Prevent potential deadlock when updating data manager and processing update thread M +18 -2 kstdatamanager_i.cpp M +1 -1 kstdatamanager_i.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1108735 Thank you very much for the detailed analysis and timely fix! I'll try to remember to run kst under GDB also in the future. |