https://bugs.kde.org/show_bug.cgi?id=375968

Milian Wolff <m...@milianw.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Product|kdevelop                    |kdevplatform
             Status|UNCONFIRMED                 |CONFIRMED
            Version|5.0.80                      |git master
   Target Milestone|---                         |5.1.0
          Component|Language Support: CPP       |language
                   |(Clang-based)               |
     Ever confirmed|0                           |1

--- Comment #2 from Milian Wolff <m...@milianw.de> ---
to me, it looks like a hang in KDevelop::DUChainPrivate::loadChain - there are
three threads in there, all from python, all from places where the duchain is
readlocked and thus block the other threads (like clang) that try to access the
duchain for writing.

I think the loadChain bug arises due the recursion:

thread A:
- enters loadChain
- locks m_chainsMutex
- puts file X into m_loading
- unlocks m_chainsMutex

thread B
- enters loadChain
- locks m_chainsMutex
-puts file Y into m_loading
- unlocks m_chainsMutex

thread A:
- recurses
- locks m_chainsMutex
- tries to load Y -> blocked by B

thread B
- recurses
- locks m_chainsMutex
- tries to load X -> blocked by A

-> deadlock

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to