You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by "Thorsten Schöning (JIRA)" <lo...@logging.apache.org> on 2014/02/10 14:54:19 UTC

[jira] [Resolved] (LOGCXX-317) Log4cxx triggers locking inversion, which can result in a deadlock

     [ https://issues.apache.org/jira/browse/LOGCXX-317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thorsten Schöning resolved LOGCXX-317.
--------------------------------------

    Resolution: Fixed

I applied the patch because regarding LOGCXX-359 the former mentioned change doesn't resolve the issue, wheres the patch of the reporter did for him.

> Log4cxx triggers locking inversion, which can result in a deadlock
> ------------------------------------------------------------------
>
>                 Key: LOGCXX-317
>                 URL: https://issues.apache.org/jira/browse/LOGCXX-317
>             Project: Log4cxx
>          Issue Type: Bug
>    Affects Versions: 0.10.0
>         Environment: Operating System: Windows 2003 R2
> Compiler: Visual Studio 2005 SP1
> log4cxx 0.10.0 was compiled as a DLL.
> Note: the reported issue is independent of the above data.
>            Reporter: Bart Van Assche
>            Assignee: Curt Arnold
>         Attachments: call-stacks.txt, helgrind-locking-order-violation-report.txt, locking-order-violation-example.cpp, locking-order-violation-fix.patch
>
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> Calling log4cxx::configureAndWatch() results in Logger::mutex being locked first, and Hierarchy::mutex being locked nested.
> Calling log4cxx::getLogger() results in Hierarchy::mutex being locked first, and Logger::mutex being locked nested.
> See also the attachment for the full call stacks.
> Such behavior is called locking inversion and can result in a sporadic deadlock.
> This issue has been found via Intel Thread Checker.
> Note: there are also other tools that can detect locking inversion, e.g. the Helgrind tool included with the Valgrind suite.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)