Review Request 128762: qmljs: restructure duchain locking to prevent deadlocks

Sven Brauch mail at svenbrauch.de
Sun Sep 4 15:30:07 UTC 2016


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128762/
-----------------------------------------------------------

(Updated Sept. 4, 2016, 3:30 p.m.)


Status
------

This change has been discarded.


Review request for KDevelop and Kevin Funk.


Bugs: 367825
    http://bugs.kde.org/show_bug.cgi?id=367825


Repository: kdevelop


Description
-------

We _must not_ hold a duchain lock when contextOfFile() is called. That
might try to add something to the background parser queue, which locks
the background parser mutex; then both locks are held, which causes
deadlocks.


Diffs
-----

  languages/qmljs/codecompletion/context.cpp 3a44f45 
  languages/qmljs/codecompletion/tests/test_qmljscompletion.cpp b689418 
  languages/qmljs/duchain/declarationbuilder.cpp fb0cb5d 
  languages/qmljs/duchain/expressionvisitor.cpp 3b641f5 
  languages/qmljs/duchain/frameworks/nodejs.cpp 41964e4 
  languages/qmljs/duchain/helper.cpp e537103 
  languages/qmljs/duchain/parsesession.cpp d1ad4a9 

Diff: https://git.reviewboard.kde.org/r/128762/diff/


Testing
-------

Opened some test project, no crashes, no freezes, and the (I think) reason for the freeze is gone.


Thanks,

Sven Brauch

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20160904/9499bd80/attachment.html>


More information about the KDevelop-devel mailing list