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

Robert Middleton closed LOGCXX-554.
-----------------------------------
    Resolution: Won't Fix

Since this is not a feature that log4cxx has ever supported, and there is 
effectively no way to handle copying thread local data between threads in C++, 
closing as "won't fix."

> Child thread does not inherit a copy of the mapped diagnostic context of its 
> parent
> -----------------------------------------------------------------------------------
>
>                 Key: LOGCXX-554
>                 URL: https://issues.apache.org/jira/browse/LOGCXX-554
>             Project: Log4cxx
>          Issue Type: Bug
>    Affects Versions: 0.12.1, 0.13.0
>         Environment: Linux - red hat 8.3/Windows 10/ Windows server 2016 64 
> bit
>            Reporter: Stefan Jipa
>            Priority: Major
>             Fix For: 0.13.0, 0.12.1
>
>
> Hi,
>  
> The API documentation for MDC says "The MDC is managed on a per thread basis. 
> A child thread automatically inherits a copy of the mapped diagnostic context 
> of its parent."
> However this does not appear to be the case. Take the following testcase:
> #include <iostream>
> #include <pthread.h>
> #include <log4cxx/mdc.h>
> using namespace std;
> void *threadfunc(void *arg)
> {
> std::cout << "child: " << log4cxx::MDC::get("mykey") << std::endl;
> }
> int main(int argc, char *argv[])
> {
> pthread_t thread_id;
> log4cxx::MDC::put("mykey", "123");
> std::cout << "main: " << log4cxx::MDC::get("mykey") << std::endl;
> pthread_create(&thread_id, NULL, threadfunc, NULL);
> pthread_join(thread_id, NULL);
> return 0;
> }
>  
> The resulted output is:
> main: 123
> child:
>  
> Instead of:
> main: 123
> child: 123
>  
> This simple program was executed on red hat 8.3 (used  c++17 and log4cxx 
> 0.12.1)
> For compiling this simple program I used the following command line:
> g++ -std=c++17 -D_GLIBCXX_USE_CXX11_ABI=0 -I log4cxx_path/include -L 
> log4cxx_path/lib/ -llog4cxx -L apr-util_path/lib/ -laprutil-1 -L 
> apr_path/lib/ -lapr-1 -pthread -o test_mdc test_mdc.cpp
> This issue also happens on windows 64 bit in our applications (log4cxx 
> 0.12.1) and I have found the same issue reported under this jira: LOGCXX-339 
> (and also is known on web as a latent problem)
> I checked the release notes of log4cxx 0.13.0 and it does not seem to address 
> this issue and probably it was never fixed cause the resolution for the issue 
> stated above was supposed to be fixed in the new versions.
>  
> Could you check this on the latest log4cxx (0.13.0)? and if is still 
> happening please provide a solution.
>  
> Thanks,
> Stefan Jipa



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to