Hi everybody,

Is getRootLogger() thread safe?

I am running into a situation where calling getRootLogger() concurrently
from many requests results in a EXC_BAD_ACCESS:

liblog4cxx.10.dylib`log4cxx::LogManager::getRootLogger():
0x101f180a0:  pushq  %rbp
0x101f180a1:  movq   %rsp, %rbp
0x101f180a4:  pushq  %rbx
0x101f180a5:  pushq  %rax
0x101f180a6:  movq   %rdi, %rbx
0x101f180a9:  callq  0x101f17de0               ;
log4cxx::LogManager::getLoggerRepository()
0x101f180ae:  movq   8(%rax), %rsi
0x101f180b2:  movq   (%rsi), %rax
0x101f180b5:  movq   %rbx, %rdi
0x101f180b8:  callq  *120(%rax) <<<<<< THREAD  1: EXC_BAD_ACCESS
(code=EXC_I386_GPFLT)
0x101f180bb:  movq   %rbx, %rax
0x101f180be:  addq   $8, %rsp
0x101f180c2:  popq   %rbx
0x101f180c3:  popq   %rbp
0x101f180c4:  ret
0x101f180c5:  nopw   %cs:(%rax,%rax)

If I replace the logging statement with a statement that writes to
std::cerr, I do not run into any problems.

I am using log4cxx 0.10.0 on MacOS 10.9.1.

Any ideas?

- Kaspar

$ brew info log4cxx

log4cxx: stable 0.10.0

http://logging.apache.org/log4cxx/index.html

/opt/brew/Cellar/log4cxx/0.10.0 (183 files, 7.9M) *

  Built from source

Reply via email to