Re: log4cxx-0.10.0: Fix for 64 bit-only thread safety bug in ObjectPtrBase
Let me retract that message above ---- the patch and with the option, did not fix it.
First time running the application, it did this:
terminate called after throwing an instance of 'log4cxx::helpers::MutexException'
what(): Mutex exception: stat = 22
Aborted
Then rerunning it again with the same application, it did this:
terminate called after throwing an instance of 'log4cxx::helpers::MutexException'
what(): Mutex exception: stat = 1
Aborted
And then other times it just Segmentation fault
It looks like it's happening when the application exits. I run the same application using a different logger, I don't have this crash or exceptions. The only thing I could gather from the stack is:
Program received signal SIGSEGV, Segmentation fault.
allocator_alloc (newpool=0x7fffffffe0e0, parent=0x617c68, abort_fn=0, allocator=0x613b50) at memory/unix/apr_pools.c:252
252 if ((*ref = node->next) == NULL && i >= max_index) {
(gdb) where
#0 allocator_alloc (newpool=0x7fffffffe0e0, parent=0x617c68, abort_fn=0, allocator=0x613b50) at memory/unix/apr_pools.c:252
#1 apr_pool_create_ex (newpool=0x7fffffffe0e0, parent=0x617c68, abort_fn=0, allocator=0x613b50) at memory/unix/apr_pools.c:856
#2 0x00002aaaaafb1060 in log4cxx::helpers::Pool::Pool (this=0x7fffffffe0e0) at pool.cpp:34
#3 0x00002aaaaaf67692 in log4cxx::helpers::MutexException::formatMessage (stat=22) at exception.cpp:227
#4 0x00002aaaaaf67739 in log4cxx::helpers::MutexException::MutexException (this=0x624750, stat=2090152296) at exception.cpp:213
#5 0x00002aaaaafd3f77 in log4cxx::helpers::synchronized::synchronized (this=<value optimized out>, mutex1=<value optimized out>)
at synchronized.cpp:35
#6 0x00002aaaaafe783d in log4cxx::WriterAppender::close (this=0x2aaaac000b20) at writerappender.cpp:135
#7 0x00002aaaaaf6d369 in log4cxx::FileAppender::~FileAppender (this=0x613b40, __in_chrg=<value optimized out>,
__vtt_parm=<value optimized out>) at fileappender.cpp:88
#8 0x00002aaaaaf3e3f8 in log4cxx::helpers::ObjectPtrT<log4cxx::Appender>::~ObjectPtrT (this=0x2aaaac000cc0,
__in_chrg=<value optimized out>) at ../../../src/main/include/log4cxx/helpers/objectptr.h:100
#9 0x00002aaaaaf3e699 in _Destroy<log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > (this=0x2aaaac000de0,
__in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:107
#10 __destroy_aux<log4cxx::helpers::ObjectPtrT<log4cxx::Appender>*> (this=0x2aaaac000de0, __in_chrg=<value optimized out>,
__vtt_parm=<value optimized out>)
at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:122
#11 _Destroy<log4cxx::helpers::ObjectPtrT<log4cxx::Appender>*> (this=0x2aaaac000de0, __in_chrg=<value optimized out>,
__vtt_parm=<value optimized out>)
at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:155
#12 _Destroy<log4cxx::helpers::ObjectPtrT<log4cxx::Appender>*, log4cxx::helpers::ObjectPtrT<log4cxx::Appender> > (
this=0x2aaaac000de0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_construct.h:182
#13 ~vector (this=0x2aaaac000de0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
at /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/bits/stl_vector.h:272
#14 log4cxx::helpers::AppenderAttachableImpl::~AppenderAttachableImpl (this=0x2aaaac000de0, __in_chrg=<value optimized out>,
__vtt_parm=<value optimized out>) at ../../../src/main/include/log4cxx/helpers/appenderattachableimpl.h:46
#15 0x00002aaaaaf8ecfc in ~ObjectPtrT (this=0x61c000, __vtt_parm=<value optimized out>, __in_chrg=<value optimized out>)
at ../../../src/main/include/log4cxx/helpers/objectptr.h:100
#16 log4cxx::Logger::~Logger (this=0x61c000, __vtt_parm=<value optimized out>, __in_chrg=<value optimized out>) at logger.cpp:55
#17 0x00002aaaaafc2521 in log4cxx::spi::RootLogger::~RootLogger (this=0x613b40, __in_chrg=<value optimized out>,
__vtt_parm=<value optimized out>) at ../../../src/main/include/log4cxx/spi/rootlogger.h:37
#18 0x00002aaaaaf96a6c in ~ObjectPtrT (this=0x619c58, __in_chrg=<value optimized out>)
at ../../../src/main/include/log4cxx/helpers/objectptr.h:100
#19 log4cxx::logstream_base::~logstream_base (this=0x619c58, __in_chrg=<value optimized out>) at logstream.cpp:51
Could someone help?