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)