Review Request 128762: qmljs: restructure duchain locking to prevent deadlocks
Kevin Funk
kfunk at kde.org
Fri Aug 26 20:56:49 UTC 2016
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/128762/#review98706
-----------------------------------------------------------
Breaks unit tests:
QFATAL : TestDeclarations::testQMLId() [test_qmljsdeclarations(10656)/(default) ?[31munknown(0)?[0m: ASSERT: "!DUChain::lock()->currentThreadHasReadLock() && !DUChain::lock()->currentThreadHasWriteLock()" in file /home/kfunk/devel/src/kf5/kdevelop-stable/languages/qmljs/duchain/parsesession.cpp, line 236
- Kevin Funk
On Aug. 25, 2016, 10:37 p.m., Sven Brauch wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/128762/
> -----------------------------------------------------------
>
> (Updated Aug. 25, 2016, 10:37 p.m.)
>
>
> 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/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/20160826/54f97fce/attachment.html>
More information about the KDevelop-devel
mailing list