You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by "Stefan Bodewig (JIRA)" <ji...@apache.org> on 2015/03/30 08:02:53 UTC

[jira] [Commented] (LOG4NET-437) LogicalThreadContext data does not flow properly using Async and Await

    [ https://issues.apache.org/jira/browse/LOG4NET-437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14386242#comment-14386242 ] 

Stefan Bodewig commented on LOG4NET-437:
----------------------------------------

Sorry, when I opened LOG4NET-456 I completely forgot about this one.  Could you please verify the fix applied for LOG4NET-456 works for your application as well?

> LogicalThreadContext data does not flow properly using Async and Await
> ----------------------------------------------------------------------
>
>                 Key: LOG4NET-437
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-437
>             Project: Log4net
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.9, 1.2.10, 1.2.11, 1.2.12, 1.2.13
>         Environment: Windows 7, .NET 4.5
>            Reporter: Mike Barry
>         Attachments: LogicalThreadContext.diff, Program.cs, ThreadContextStacks.diff
>
>
> LogicalThreadContext doesn't work properly when using Async and Await. The current NDC call stack gets corrupted because the logical data context is not immutable. (See: http://blog.stephencleary.com/2013/04/implicit-async-context-asynclocal.html for the gory details). I've attached a Program.cs that demonstrates the issue. You will see with an unpatched log4net the thread context is corrupted compared to the proper implementation in MyStack and the console logger. An entry like:
> LOG4NET Main 1 A 2 A: </MoreWork>
> LOG4NET Main 1 A 2 A: </MoreWork>
> is invalid and should not be possible in a properly working thread context.
> I've attached a VERY naive patch that corrects the issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Re: [jira] [Commented] (LOG4NET-437) LogicalThreadContext data does not flow properly using Async and Await

Posted by Stefan Bodewig <bo...@apache.org>.
On 2015-03-30, Alexander Houben wrote:

> You probably mean LOG4NET-455.

Yes, thanks!

Stefan

RE: [jira] [Commented] (LOG4NET-437) LogicalThreadContext data does not flow properly using Async and Await

Posted by Alexander Houben <ah...@greenliff.com>.
You probably mean LOG4NET-455.

> -----Original Message-----
> From: Stefan Bodewig (JIRA) [mailto:jira@apache.org]
> Sent: Montag, 30. März 2015 08:03
> To: log4net-dev@logging.apache.org
> Subject: [jira] [Commented] (LOG4NET-437) LogicalThreadContext data
> does not flow properly using Async and Await
> 
> 
>     [ https://issues.apache.org/jira/browse/LOG4NET-
> 437?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-
> tabpanel&focusedCommentId=14386242#comment-14386242 ]
> 
> Stefan Bodewig commented on LOG4NET-437:
> ----------------------------------------
> 
> Sorry, when I opened LOG4NET-456 I completely forgot about this one.
> Could you please verify the fix applied for LOG4NET-456 works for your
> application as well?
> 
> > LogicalThreadContext data does not flow properly using Async and
> Await
> > ---------------------------------------------------------------------
> -
> >
> >                 Key: LOG4NET-437
> >                 URL: https://issues.apache.org/jira/browse/LOG4NET-
> 437
> >             Project: Log4net
> >          Issue Type: Bug
> >          Components: Core
> >    Affects Versions: 1.2.9, 1.2.10, 1.2.11, 1.2.12, 1.2.13
> >         Environment: Windows 7, .NET 4.5
> >            Reporter: Mike Barry
> >         Attachments: LogicalThreadContext.diff, Program.cs,
> ThreadContextStacks.diff
> >
> >
> > LogicalThreadContext doesn't work properly when using Async and
> Await. The current NDC call stack gets corrupted because the logical
> data context is not immutable. (See:
> http://blog.stephencleary.com/2013/04/implicit-async-context-
> asynclocal.html for the gory details). I've attached a Program.cs that
> demonstrates the issue. You will see with an unpatched log4net the
> thread context is corrupted compared to the proper implementation in
> MyStack and the console logger. An entry like:
> > LOG4NET Main 1 A 2 A: </MoreWork>
> > LOG4NET Main 1 A 2 A: </MoreWork>
> > is invalid and should not be possible in a properly working thread
> context.
> > I've attached a VERY naive patch that corrects the issue.
> 
> 
> 
> --
> This message was sent by Atlassian JIRA
> (v6.3.4#6332)