apache / logging-log4cxx

Apache Log4cxx is a C++ port of Apache Log4j
http://logging.apache.org/log4cxx
Apache License 2.0
278 stars 122 forks source link

Async appender in msys2 ucrt-x86_64-g++ occasionally blocks #402

Closed swebb2066 closed 1 month ago

swebb2066 commented 4 months ago

The frequency varies from about 1 in 10 in Github CI build machines to 1 in 3000 on a AMD Ryzen 7 3750H.

The debugger shows all threads blocking on condition_variable::wait

swebb2066 commented 4 months ago

The cause was a failure to lock the mutex before calling notify_all(), which seems to be a problem in newer compilers (gcc 14, MSVC 2022 Release builds).

No re-occurance during tens of thousands of invocations of asyncappendertestcase.exe testMultiThread

swebb2066 commented 3 months ago

Reopening this as it seems to still be a problem on Github CI build machines. Unable to reproduce on AMD Ryzen 7 3750H in tens of thousands of invocations of asyncappendertestcase.exe testMultiThread even when using 10 as the BufferSize so the wait conditions are more frequent.

atari83 commented 3 months ago

Hello Stephen, Unrelated to this topic, when we could expect the new release ? and if it is safe to build the 'master' and ship it with software ?

Many thanks

rm5248 commented 3 months ago

Releases are somewhat periodic, but I think we do have enough to do one soon.

Using master is always at your own risk

swebb2066 commented 1 month ago

The following is the stack trace obtained in #415 suggesting some sort of race condition in ring buffer slot mangement:

(gdb)   Id   Target Id          Frame 
  1    Thread 4336.0x8ec  0x00007ff96661f904 in ntdll!ZwWaitForSingleObject ()
   from C:\Windows\SYSTEM32\ntdll.dll
  2    Thread 4336.0x1770 0x00007ff9666233d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
  3    Thread 4336.0x6e8  0x00007ff9666233d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
  4    Thread 4336.0x18bc 0x00007ff9666233d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
  5    Thread 4336.0x1a74 0x00007ff930fe606c in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=@0x17fbfff408: 428, 
    __i2=429, __m1=std::memory_order::release, __m2=std::memory_order::relaxed)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
  6    Thread 4336.0x764  0x00007ff930fe606c in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=@0x17fc1ff848: 430, 
    __i2=431, __m1=std::memory_order::release, __m2=std::memory_order::relaxed)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
  7    Thread 4336.0x1410 0x00007ff930fe6074 in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=@0x17fc3ff2a8: 429, 
    __i2=430, __m1=std::memory_order::release, __m2=std::memory_order::relaxed)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
  8    Thread 4336.0x90c  0x00007ff9310a3de1 in std::_Vector_base<std::shared_ptr<log4cxx::Appender>, std::allocator<std::shared_ptr<log4cxx::Appender> > >::_M_get_Tp_allocator (this=0x17fc5ffab0)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/stl_vector.h:300
  9    Thread 4336.0x664  0x00007ff6a9a1cb21 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_is_local (
    this=0x17fc7ff810)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/basic_string.h:267
  10   Thread 4336.0xe94  0x00007ff94bb92f73 in ?? ()
   from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
  11   Thread 4336.0x93c  0x00007ff930fe606c in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=@0x17fcbff4b8: 431, 
    __i2=432, __m1=std::memory_order::release, __m2=std::memory_order::relaxed)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
* 12   Thread 4336.0x1a18 0x00007ff966623431 in ntdll!DbgBreakPoint ()
   from C:\Windows\SYSTEM32\ntdll.dll
(gdb) 
Thread 12 (Thread 4336.0x1a18):
#0  0x00007ff966623431 in ntdll!DbgBreakPoint () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ff96664fc1e in ntdll!DbgUiRemoteBreakin () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#3  0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 11 (Thread 4336.0x93c):
#0  0x00007ff930fe606c in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=@0x17fcbff4b8: 431, __i2=432, __m1=std::memory_order::release, __m2=std::memory_order::relaxed) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
#1  std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=<optimized out>, __i2=432, __m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
#2  log4cxx::AsyncAppender::append (this=0x14616e642c0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:314
#3  0x00007ff930fe401f in log4cxx::AppenderSkeleton::doAppendImpl (this=0x14616e642c8, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderskeleton.cpp:131
#4  0x00007ff930fe5a04 in log4cxx::AsyncAppender::doAppend (this=0x14616e642c0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:280
#5  0x00007ff930fe2886 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x14616e30958, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:83
#6  0x00007ff93100ff4c in log4cxx::Logger::callAppenders (this=0x14616e64830, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#7  0x00007ff931010146 in log4cxx::Logger::addEvent (this=0x14616e64830, level=std::shared_ptr<log4cxx::Level> (use count 435, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#8  0x00007ff931010380 in log4cxx::Logger::addDebugEvent (this=0x14616e64830, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#9  0x00007ff6a9a2acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x14616e786f8) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#10 0x00007ff6a9a28b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#11 0x00007ff6a9a2a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#12 0x00007ff6a9a22bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x14616e786f8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#13 0x00007ff6a9a22c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x14616e786f8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#14 0x00007ff6a9a22a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x14616e786f0) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#15 0x00007ff948042c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#16 0x00007ff94bb94e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#17 0x00007ff963e76b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#18 0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#19 0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#20 0x0000000000000000 in ?? ()

Thread 10 (Thread 4336.0xe94):
#0  0x00007ff94bb92f73 in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#1  0x00007ff930fe1406 in __gthread_mutex_lock (__mutex=0x14616e642f8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/x86_64-w64-mingw32/bits/gthr-default.h:762
#2  0x00007ff9310e0688 in std::mutex::lock (this=0x14616e642f8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_mutex.h:113
#3  0x00007ff93108d04a in std::lock_guard<std::mutex>::lock_guard (this=0x17fc9ff3e8, __m=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_mutex.h:250
#4  0x00007ff930fe294f in log4cxx::helpers::AppenderAttachableImpl::getAllAppenders (this=0x14616e86b48) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:96
#5  0x00007ff930fe281a in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x14616e86b48, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 3, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:80
#6  0x00007ff930fe7895 in log4cxx::AsyncAppender::dispatch (this=0x14616e642c0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:558
#7  0x00007ff93110e916 in std::__invoke_impl<void, void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> (__f=@0x14616e78220: (void (log4cxx::AsyncAppender::*)(log4cxx::AsyncAppender * const)) 0x7ff930fe710c <log4cxx::AsyncAppender::dispatch()>, __t=@0x14616e78218: 0x14616e642c0) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:74
#8  0x00007ff93111e75c in std::__invoke<void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> (__fn=@0x14616e78220: (void (log4cxx::AsyncAppender::*)(log4cxx::AsyncAppender * const)) 0x7ff930fe710c <log4cxx::AsyncAppender::dispatch()>) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#9  0x00007ff9310e3725 in std::thread::_Invoker<std::tuple<void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> >::_M_invoke<0ull, 1ull> (this=0x14616e78218) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#10 0x00007ff9310e3798 in std::thread::_Invoker<std::tuple<void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> >::operator() (this=0x14616e78218) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#11 0x00007ff9310e323c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> > >::_M_run (this=0x14616e78210) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#12 0x00007ff948042c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#13 0x00007ff94bb94e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#14 0x00007ff963e76b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#15 0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#16 0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#17 0x0000000000000000 in ?? ()

Thread 9 (Thread 4336.0x664):
#0  0x00007ff6a9a1cb21 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_is_local (this=0x17fc7ff810) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/basic_string.h:267
#1  0x00007ff6a9a246b8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose (this=0x17fc7ff880) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/basic_string.h:287
#2  0x00007ff6a9a262b8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string (this=0x17fc7ff880, __in_chrg=<optimized out>) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/basic_string.h:809
#3  0x00007ff6a9a2acc7 in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x14616e64618) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#4  0x00007ff6a9a28b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#5  0x00007ff6a9a2a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#6  0x00007ff6a9a22bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x14616e64618) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#7  0x00007ff6a9a22c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x14616e64618) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#8  0x00007ff6a9a22a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x14616e64610) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#9  0x00007ff948042c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#10 0x00007ff94bb94e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#11 0x00007ff963e76b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#12 0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#13 0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#14 0x0000000000000000 in ?? ()

Thread 8 (Thread 4336.0x90c):
#0  0x00007ff9310a3de1 in std::_Vector_base<std::shared_ptr<log4cxx::Appender>, std::allocator<std::shared_ptr<log4cxx::Appender> > >::_M_get_Tp_allocator (this=0x17fc5ffab0) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/stl_vector.h:300
#1  0x00007ff9310ea9f8 in std::vector<std::shared_ptr<log4cxx::Appender>, std::allocator<std::shared_ptr<log4cxx::Appender> > >::~vector (this=0x17fc5ffb10, __in_chrg=<optimized out>) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/stl_vector.h:736
#2  0x00007ff930fe28c5 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x14616e30958, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 3, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:86
#3  0x00007ff93100ff4c in log4cxx::Logger::callAppenders (this=0x14616e64830, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 3, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#4  0x00007ff931010146 in log4cxx::Logger::addEvent (this=0x14616e64830, level=std::shared_ptr<log4cxx::Level> (use count 435, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#5  0x00007ff931010380 in log4cxx::Logger::addDebugEvent (this=0x14616e64830, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#6  0x00007ff6a9a2acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x14616e64498) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#7  0x00007ff6a9a28b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#8  0x00007ff6a9a2a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#9  0x00007ff6a9a22bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x14616e64498) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#10 0x00007ff6a9a22c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x14616e64498) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#11 0x00007ff6a9a22a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x14616e64490) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#12 0x00007ff948042c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#13 0x00007ff94bb94e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#14 0x00007ff963e76b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#15 0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#16 0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#17 0x0000000000000000 in ?? ()

Thread 7 (Thread 4336.0x1410):
#0  0x00007ff930fe6074 in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=@0x17fc3ff2a8: 429, __i2=430, __m1=std::memory_order::release, __m2=std::memory_order::relaxed) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
#1  std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=<optimized out>, __i2=430, __m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
#2  log4cxx::AsyncAppender::append (this=0x14616e642c0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:314
#3  0x00007ff930fe401f in log4cxx::AppenderSkeleton::doAppendImpl (this=0x14616e642c8, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderskeleton.cpp:131
#4  0x00007ff930fe5a04 in log4cxx::AsyncAppender::doAppend (this=0x14616e642c0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:280
#5  0x00007ff930fe2886 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x14616e30958, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:83
#6  0x00007ff93100ff4c in log4cxx::Logger::callAppenders (this=0x14616e64830, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#7  0x00007ff931010146 in log4cxx::Logger::addEvent (this=0x14616e64830, level=std::shared_ptr<log4cxx::Level> (use count 435, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#8  0x00007ff931010380 in log4cxx::Logger::addDebugEvent (this=0x14616e64830, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#9  0x00007ff6a9a2acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x14616e64438) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#10 0x00007ff6a9a28b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#11 0x00007ff6a9a2a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#12 0x00007ff6a9a22bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x14616e64438) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#13 0x00007ff6a9a22c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x14616e64438) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#14 0x00007ff6a9a22a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x14616e64430) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#15 0x00007ff948042c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#16 0x00007ff94bb94e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#17 0x00007ff963e76b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#18 0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#19 0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#20 0x0000000000000000 in ?? ()

Thread 6 (Thread 4336.0x764):
#0  0x00007ff930fe606c in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=@0x17fc1ff848: 430, __i2=431, __m1=std::memory_order::release, __m2=std::memory_order::relaxed) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
#1  std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=<optimized out>, __i2=431, __m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
#2  log4cxx::AsyncAppender::append (this=0x14616e642c0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:314
#3  0x00007ff930fe401f in log4cxx::AppenderSkeleton::doAppendImpl (this=0x14616e642c8, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderskeleton.cpp:131
#4  0x00007ff930fe5a04 in log4cxx::AsyncAppender::doAppend (this=0x14616e642c0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:280
#5  0x00007ff930fe2886 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x14616e30958, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:83
#6  0x00007ff93100ff4c in log4cxx::Logger::callAppenders (this=0x14616e64830, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#7  0x00007ff931010146 in log4cxx::Logger::addEvent (this=0x14616e64830, level=std::shared_ptr<log4cxx::Level> (use count 435, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#8  0x00007ff931010380 in log4cxx::Logger::addDebugEvent (this=0x14616e64830, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#9  0x00007ff6a9a2acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x14616e645e8) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#10 0x00007ff6a9a28b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#11 0x00007ff6a9a2a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#12 0x00007ff6a9a22bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x14616e645e8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#13 0x00007ff6a9a22c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x14616e645e8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#14 0x00007ff6a9a22a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x14616e645e0) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#15 0x00007ff948042c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#16 0x00007ff94bb94e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#17 0x00007ff963e76b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#18 0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#19 0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#20 0x0000000000000000 in ?? ()

Thread 5 (Thread 4336.0x1a74):
#0  0x00007ff930fe606c in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=@0x17fbfff408: 428, __i2=429, __m1=std::memory_order::release, __m2=std::memory_order::relaxed) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
#1  std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x14616e86c00, __i1=<optimized out>, __i2=429, __m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
#2  log4cxx::AsyncAppender::append (this=0x14616e642c0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:314
#3  0x00007ff930fe401f in log4cxx::AppenderSkeleton::doAppendImpl (this=0x14616e642c8, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderskeleton.cpp:131
#4  0x00007ff930fe5a04 in log4cxx::AsyncAppender::doAppend (this=0x14616e642c0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:280
#5  0x00007ff930fe2886 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x14616e30958, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:83
#6  0x00007ff93100ff4c in log4cxx::Logger::callAppenders (this=0x14616e64830, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#7  0x00007ff931010146 in log4cxx::Logger::addEvent (this=0x14616e64830, level=std::shared_ptr<log4cxx::Level> (use count 435, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#8  0x00007ff931010380 in log4cxx::Logger::addDebugEvent (this=0x14616e64830, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#9  0x00007ff6a9a2acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x14616e64708) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#10 0x00007ff6a9a28b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#11 0x00007ff6a9a2a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#12 0x00007ff6a9a22bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x14616e64708) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#13 0x00007ff6a9a22c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x14616e64708) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#14 0x00007ff6a9a22a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x14616e64700) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#15 0x00007ff948042c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#16 0x00007ff94bb94e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#17 0x00007ff963e76b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#18 0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#19 0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#20 0x0000000000000000 in ?? ()

Thread 4 (Thread 4336.0x18bc):
#0  0x00007ff9666233d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ff96658b77f in ntdll!RtlInitializeResource () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#3  0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 3 (Thread 4336.0x6e8):
#0  0x00007ff9666233d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ff96658b77f in ntdll!RtlInitializeResource () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#3  0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 4336.0x1770):
#0  0x00007ff9666233d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ff96658b77f in ntdll!RtlInitializeResource () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ff966154cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#3  0x00007ff9665fecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 4336.0x8ec):
#0  0x00007ff96661f904 in ntdll!ZwWaitForSingleObject () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ff9640dd71e in WaitForSingleObjectEx () from C:\Windows\System32\KernelBase.dll
#2  0x00007ff94bb9690a in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#3  0x00007ff947ffd8f7 in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#4  0x00007ff6a9a16c1a in AsyncAppenderTestCase::testMultiThread (this=0x17fb7ff4f0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:262
#5  0x00007ff6a9a19898 in LogUnit::runTest<AsyncAppenderTestCase> (tc=0x17fb7ff5e0, func=(void (AsyncAppenderTestCase::*)(AsyncAppenderTestCase * const)) 0x7ff6a9a169d0 <AsyncAppenderTestCase::testMultiThread()>) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/logunit.h:115
#6  0x00007ff6a9a15768 in AsyncAppenderTestCase::RegisterSuite::testMultiThreadRegistration::run (tc=0x17fb7ff5e0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:127
#7  0x00007ff6a9a11b63 in abts_run_test (ts=0x14616e3feb0, name=0x7ff6a9a2d137 "testMultiThread", f=0x7ff6a9a15730 <AsyncAppenderTestCase::RegisterSuite::testMultiThreadRegistration::run(abts_case*, void*)>, value=0x0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/abts.cpp:215
#8  0x00007ff6a9a1364e in LogUnit::TestSuite::run (this=0x7ff6a9a2c120 <AsyncAppenderTestCase::getSuite()::suite>, suite=0x14616e3feb0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/logunit.cpp:281
#9  0x00007ff6a9a12cec in abts_run_suites (suite=0x0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/logunit.cpp:66
#10 0x00007ff6a9a1277d in main (argc=2, argv=0x14616e3fcd0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/abts.cpp:595
warning: Exception condition detected on fd 0
swebb2066 commented 1 month ago

And another stack trace captured by #415 possibly indicating a race condition problem:

(gdb)   Id   Target Id          Frame 
  1    Thread 3924.0x1374 0x00007ffb7457f904 in ntdll!ZwWaitForSingleObject ()
   from C:\Windows\SYSTEM32\ntdll.dll
  2    Thread 3924.0x1af4 0x00007ffb745833d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
  3    Thread 3924.0xe84  0x00007ffb745833d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
  4    Thread 3924.0x66c  0x00007ffb745833d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
  5    Thread 3924.0x150c 0x00007ffb3e47606c in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x16ae8ee4240, __i1=@0x6491fff848: 499, 
    __i2=500, __m1=std::memory_order::release, __m2=std::memory_order::relaxed)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
  6    Thread 3924.0xf4c  std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x16ae8ee4240, __i1=<optimized out>, __i2=499, 
    __m=std::memory_order::release)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
  7    Thread 3924.0xa9c  0x00007ffb55e79f2a in ?? ()
   from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
  8    Thread 3924.0xf1c  0x00007ffb55ed9901 in ?? ()
   from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
  9    Thread 3924.0xb98  std::operator& (__m=std::memory_order::release, 
    __mod=std::__memory_order_modifier_mask)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:112
  10   Thread 3924.0xf38  0x00007ffb3e5a60a6 in std::__cmpexch_failure_order (
    __m=3907931264)
    at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:126
  11   Thread 3924.0x194c 0x00007ffb744fc9ef in ntdll!RtlAllocateHeap ()
   from C:\Windows\SYSTEM32\ntdll.dll
* 12   Thread 3924.0x130c 0x00007ffb74583431 in ntdll!DbgBreakPoint ()
   from C:\Windows\SYSTEM32\ntdll.dll
(gdb) 
Thread 12 (Thread 3924.0x130c):
#0  0x00007ffb74583431 in ntdll!DbgBreakPoint () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ffb745afc1e in ntdll!DbgUiRemoteBreakin () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#3  0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 11 (Thread 3924.0x194c):
#0  0x00007ffb744fc9ef in ntdll!RtlAllocateHeap () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ffb744fbf5a in ntdll!RtlAllocateHeap () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ffb71f9ffa6 in ucrtbase!_malloc_base () from C:\Windows\System32\ucrtbase.dll
#3  0x00007ffb55f9135c in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#4  0x00007ffb3e550233 in std::__new_allocator<std::shared_ptr<log4cxx::Appender> >::allocate (this=0x6492bff8a0, __n=1) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/new_allocator.h:151
#5  0x00007ffb3e533cac in std::allocator<std::shared_ptr<log4cxx::Appender> >::allocate (this=0x6492bff8a0, __n=1) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/allocator.h:196
#6  std::allocator_traits<std::allocator<std::shared_ptr<log4cxx::Appender> > >::allocate (__a=..., __n=1) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/alloc_traits.h:478
#7  std::_Vector_base<std::shared_ptr<log4cxx::Appender>, std::allocator<std::shared_ptr<log4cxx::Appender> > >::_M_allocate (this=0x6492bff8a0, __n=1) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/stl_vector.h:380
#8  0x00007ffb3e57a6eb in std::vector<std::shared_ptr<log4cxx::Appender>, std::allocator<std::shared_ptr<log4cxx::Appender> > >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<std::shared_ptr<log4cxx::Appender> const*, std::vector<std::shared_ptr<log4cxx::Appender>, std::allocator<std::shared_ptr<log4cxx::Appender> > > > > (this=0x6492bff8a0, __n=1, __first=std::shared_ptr<log4cxx::Appender> (use count 2, weak count 0) = {...}, __last=<error reading variable: Cannot access memory at address 0x8800010018f56200>) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/stl_vector.h:1621
#9  0x00007ffb3e57abb1 in std::vector<std::shared_ptr<log4cxx::Appender>, std::allocator<std::shared_ptr<log4cxx::Appender> > >::operator= (this=0x6492bff8a0, __x=std::vector of length 1, capacity 1 = {...}) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/vector.tcc:238
#10 0x00007ffb3e47296e in log4cxx::helpers::AppenderAttachableImpl::getAllAppenders (this=0x16ae8ee4188) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:97
#11 0x00007ffb3e47281a in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x16ae8ee4188, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 3, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:80
#12 0x00007ffb3e477895 in log4cxx::AsyncAppender::dispatch (this=0x16ae8ee4c70) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:558
#13 0x00007ffb3e59e916 in std::__invoke_impl<void, void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> (__f=@0x16ae8ef6cc0: (void (log4cxx::AsyncAppender::*)(log4cxx::AsyncAppender * const)) 0x7ffb3e47710c <log4cxx::AsyncAppender::dispatch()>, __t=@0x16ae8ef6cb8: 0x16ae8ee4c70) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:74
#14 0x00007ffb3e5ae75c in std::__invoke<void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> (__fn=@0x16ae8ef6cc0: (void (log4cxx::AsyncAppender::*)(log4cxx::AsyncAppender * const)) 0x7ffb3e47710c <log4cxx::AsyncAppender::dispatch()>) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#15 0x00007ffb3e573725 in std::thread::_Invoker<std::tuple<void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> >::_M_invoke<0ull, 1ull> (this=0x16ae8ef6cb8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#16 0x00007ffb3e573798 in std::thread::_Invoker<std::tuple<void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> >::operator() (this=0x16ae8ef6cb8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#17 0x00007ffb3e57323c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (log4cxx::AsyncAppender::*)(), log4cxx::AsyncAppender*> > >::_M_run (this=0x16ae8ef6cb0) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#18 0x00007ffb55f92c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#19 0x00007ffb64164e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#20 0x00007ffb71fb6b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#21 0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#22 0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#23 0x0000000000000000 in ?? ()

Thread 10 (Thread 3924.0xf38):
#0  0x00007ffb3e5a60a6 in std::__cmpexch_failure_order (__m=3907931264) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:126
#1  0x00007ffb3e475ff3 in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x16ae8ee4240, __i1=<optimized out>, __i2=501, __m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
#2  log4cxx::AsyncAppender::append (this=0x16ae8ee4c70, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:314
#3  0x00007ffb3e47401f in log4cxx::AppenderSkeleton::doAppendImpl (this=0x16ae8ee4c78, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderskeleton.cpp:131
#4  0x00007ffb3e475a04 in log4cxx::AsyncAppender::doAppend (this=0x16ae8ee4c70, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:280
#5  0x00007ffb3e472886 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x16ae8eb3a68, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:83
#6  0x00007ffb3e49ff4c in log4cxx::Logger::callAppenders (this=0x16ae8ee49a0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#7  0x00007ffb3e4a0146 in log4cxx::Logger::addEvent (this=0x16ae8ee49a0, level=std::shared_ptr<log4cxx::Level> (use count 505, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#8  0x00007ffb3e4a0380 in log4cxx::Logger::addDebugEvent (this=0x16ae8ee49a0, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#9  0x00007ff60052acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x16ae8ef7138) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#10 0x00007ff600528b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#11 0x00007ff60052a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#12 0x00007ff600522bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x16ae8ef7138) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#13 0x00007ff600522c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x16ae8ef7138) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#14 0x00007ff600522a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x16ae8ef7130) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#15 0x00007ffb55f92c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#16 0x00007ffb64164e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#17 0x00007ffb71fb6b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#18 0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#19 0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#20 0x0000000000000000 in ?? ()

Thread 9 (Thread 3924.0xb98):
#0  std::operator& (__m=std::memory_order::release, __mod=std::__memory_order_modifier_mask) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:112
#1  0x00007ffb3e5a60bd in std::__cmpexch_failure_order (__m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:128
#2  0x00007ffb3e475ff3 in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x16ae8ee4240, __i1=<optimized out>, __i2=502, __m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
#3  log4cxx::AsyncAppender::append (this=0x16ae8ee4c70, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:314
#4  0x00007ffb3e47401f in log4cxx::AppenderSkeleton::doAppendImpl (this=0x16ae8ee4c78, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderskeleton.cpp:131
#5  0x00007ffb3e475a04 in log4cxx::AsyncAppender::doAppend (this=0x16ae8ee4c70, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:280
#6  0x00007ffb3e472886 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x16ae8eb3a68, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:83
#7  0x00007ffb3e49ff4c in log4cxx::Logger::callAppenders (this=0x16ae8ee49a0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#8  0x00007ffb3e4a0146 in log4cxx::Logger::addEvent (this=0x16ae8ee49a0, level=std::shared_ptr<log4cxx::Level> (use count 505, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#9  0x00007ffb3e4a0380 in log4cxx::Logger::addDebugEvent (this=0x16ae8ee49a0, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#10 0x00007ff60052acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x16ae8ef7078) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#11 0x00007ff600528b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#12 0x00007ff60052a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#13 0x00007ff600522bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x16ae8ef7078) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#14 0x00007ff600522c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x16ae8ef7078) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#15 0x00007ff600522a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x16ae8ef7070) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#16 0x00007ffb55f92c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#17 0x00007ffb64164e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#18 0x00007ffb71fb6b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#19 0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#20 0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#21 0x0000000000000000 in ?? ()

Thread 8 (Thread 3924.0xf1c):
#0  0x00007ffb55ed9901 in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#1  0x00007ffb3e4aac71 in (anonymous namespace)::StringOrStream<char>::BufFromStream (this=0x16ae8f39430) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/messagebuffer.cpp:78
#2  0x00007ffb3e4a98b4 in log4cxx::helpers::CharMessageBuffer::extract_str[abi:cxx11](std::basic_ostream<char, std::char_traits<char> >&) (this=0x16ae8f0ec10) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/messagebuffer.cpp:159
#3  0x00007ffb3e4aa3e1 in log4cxx::helpers::MessageBuffer::extract_str[abi:cxx11](std::basic_ostream<char, std::char_traits<char> >&) (this=0x64925ff928, os=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/messagebuffer.cpp:451
#4  0x00007ff60052aca5 in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x16ae8ef73d8) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#5  0x00007ff600528b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#6  0x00007ff60052a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#7  0x00007ff600522bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x16ae8ef73d8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#8  0x00007ff600522c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x16ae8ef73d8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#9  0x00007ff600522a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x16ae8ef73d0) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#10 0x00007ffb55f92c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#11 0x00007ffb64164e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#12 0x00007ffb71fb6b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#13 0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#14 0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#15 0x0000000000000000 in ?? ()

Thread 7 (Thread 3924.0xa9c):
#0  0x00007ffb55e79f2a in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#1  0x00007ffb55ec012a in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#2  0x00007ffb55ec1dbc in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#3  0x00007ffb55ee22f9 in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#4  0x00007ffb3e4a9a64 in log4cxx::helpers::CharMessageBuffer::operator<< (this=0x16ae8f00710, val=96) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/messagebuffer.cpp:199
#5  0x00007ff60052ac8f in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x16ae8ee4de8) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#6  0x00007ff600528b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#7  0x00007ff60052a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#8  0x00007ff600522bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x16ae8ee4de8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#9  0x00007ff600522c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x16ae8ee4de8) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#10 0x00007ff600522a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x16ae8ee4de0) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#11 0x00007ffb55f92c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#12 0x00007ffb64164e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#13 0x00007ffb71fb6b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#14 0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#15 0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#16 0x0000000000000000 in ?? ()

Thread 6 (Thread 3924.0xf4c):
#0  std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x16ae8ee4240, __i1=<optimized out>, __i2=499, __m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
#1  log4cxx::AsyncAppender::append (this=0x16ae8ee4c70, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:314
#2  0x00007ffb3e47401f in log4cxx::AppenderSkeleton::doAppendImpl (this=0x16ae8ee4c78, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderskeleton.cpp:131
#3  0x00007ffb3e475a04 in log4cxx::AsyncAppender::doAppend (this=0x16ae8ee4c70, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:280
#4  0x00007ffb3e472886 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x16ae8eb3a68, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:83
#5  0x00007ffb3e49ff4c in log4cxx::Logger::callAppenders (this=0x16ae8ee49a0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#6  0x00007ffb3e4a0146 in log4cxx::Logger::addEvent (this=0x16ae8ee49a0, level=std::shared_ptr<log4cxx::Level> (use count 505, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#7  0x00007ffb3e4a0380 in log4cxx::Logger::addDebugEvent (this=0x16ae8ee49a0, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#8  0x00007ff60052acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x16ae8ee4b18) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#9  0x00007ff600528b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#10 0x00007ff60052a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#11 0x00007ff600522bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x16ae8ee4b18) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#12 0x00007ff600522c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x16ae8ee4b18) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#13 0x00007ff600522a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x16ae8ee4b10) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#14 0x00007ffb55f92c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#15 0x00007ffb64164e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#16 0x00007ffb71fb6b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#17 0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#18 0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#19 0x0000000000000000 in ?? ()

Thread 5 (Thread 3924.0x150c):
#0  0x00007ffb3e47606c in std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x16ae8ee4240, __i1=@0x6491fff848: 499, __i2=500, __m1=std::memory_order::release, __m2=std::memory_order::relaxed) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:536
#1  std::__atomic_base<unsigned long long>::compare_exchange_weak (this=0x16ae8ee4240, __i1=<optimized out>, __i2=500, __m=std::memory_order::release) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/atomic_base.h:555
#2  log4cxx::AsyncAppender::append (this=0x16ae8ee4c70, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:314
#3  0x00007ffb3e47401f in log4cxx::AppenderSkeleton::doAppendImpl (this=0x16ae8ee4c78, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderskeleton.cpp:131
#4  0x00007ffb3e475a04 in log4cxx::AsyncAppender::doAppend (this=0x16ae8ee4c70, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, pool1=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/asyncappender.cpp:280
#5  0x00007ffb3e472886 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x16ae8eb3a68, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/appenderattachableimpl.cpp:83
#6  0x00007ffb3e49ff4c in log4cxx::Logger::callAppenders (this=0x16ae8ee49a0, event=std::shared_ptr<log4cxx::spi::LoggingEvent> (use count 2, weak count 0) = {...}, p=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:140
#7  0x00007ffb3e4a0146 in log4cxx::Logger::addEvent (this=0x16ae8ee49a0, level=std::shared_ptr<log4cxx::Level> (use count 505, weak count 0) = {...}, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:175
#8  0x00007ffb3e4a0380 in log4cxx::Logger::addDebugEvent (this=0x16ae8ee49a0, message=..., location=...) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/main/cpp/logger.cpp:200
#9  0x00007ff60052acbb in AsyncAppenderTestCase::testMultiThread()::{lambda()#1}::operator()() const (__closure=0x16ae8ee4a28) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:253
#10 0x00007ff600528b80 in std::__invoke_impl<void, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(std::__invoke_other, AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__f=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:61
#11 0x00007ff60052a735 in std::__invoke<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}>(AsyncAppenderTestCase::testMultiThread()::{lambda()#1}&&) (__fn=...) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/invoke.h:96
#12 0x00007ff600522bf8 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::_M_invoke<0ull>(std::_Index_tuple<0ull>) (this=0x16ae8ee4a28) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:301
#13 0x00007ff600522c78 in std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> >::operator()() (this=0x16ae8ee4a28) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:308
#14 0x00007ff600522a6c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<AsyncAppenderTestCase::testMultiThread()::{lambda()#1}> > >::_M_run() (this=0x16ae8ee4a20) at D:/a/_temp/msys64/ucrt64/include/c++/14.2.0/bits/std_thread.h:253
#15 0x00007ffb55f92c3f in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#16 0x00007ffb64164e0b in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#17 0x00007ffb71fb6b4c in ucrtbase!_recalloc () from C:\Windows\System32\ucrtbase.dll
#18 0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#19 0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#20 0x0000000000000000 in ?? ()

Thread 4 (Thread 3924.0x66c):
#0  0x00007ffb745833d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ffb744eb77f in ntdll!RtlInitializeResource () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#3  0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 3 (Thread 3924.0xe84):
#0  0x00007ffb745833d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ffb744eb77f in ntdll!RtlInitializeResource () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#3  0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 2 (Thread 3924.0x1af4):
#0  0x00007ffb745833d4 in ntdll!ZwWaitForWorkViaWorkerFactory () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ffb744eb77f in ntdll!RtlInitializeResource () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x00007ffb73314cb0 in KERNEL32!BaseThreadInitThunk () from C:\Windows\System32\kernel32.dll
#3  0x00007ffb7455ecdb in ntdll!RtlUserThreadStart () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 3924.0x1374):
#0  0x00007ffb7457f904 in ntdll!ZwWaitForSingleObject () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x00007ffb720dd71e in WaitForSingleObjectEx () from C:\Windows\System32\KernelBase.dll
#2  0x00007ffb6416690a in ?? () from D:\a\_temp\msys64\ucrt64\bin\libwinpthread-1.dll
#3  0x00007ffb55f4d8f7 in ?? () from D:\a\_temp\msys64\ucrt64\bin\libstdc++-6.dll
#4  0x00007ff600516c1a in AsyncAppenderTestCase::testMultiThread (this=0x64917ff7b0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:262
#5  0x00007ff600519898 in LogUnit::runTest<AsyncAppenderTestCase> (tc=0x64917ff8a0, func=(void (AsyncAppenderTestCase::*)(AsyncAppenderTestCase * const)) 0x7ff6005169d0 <AsyncAppenderTestCase::testMultiThread()>) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/logunit.h:115
#6  0x00007ff600515768 in AsyncAppenderTestCase::RegisterSuite::testMultiThreadRegistration::run (tc=0x64917ff8a0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/asyncappendertestcase.cpp:127
#7  0x00007ff600511b63 in abts_run_test (ts=0x16ae8ebe7a0, name=0x7ff60052d137 "testMultiThread", f=0x7ff600515730 <AsyncAppenderTestCase::RegisterSuite::testMultiThreadRegistration::run(abts_case*, void*)>, value=0x0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/abts.cpp:215
#8  0x00007ff60051364e in LogUnit::TestSuite::run (this=0x7ff60052c120 <AsyncAppenderTestCase::getSuite()::suite>, suite=0x16ae8ebe7a0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/logunit.cpp:281
#9  0x00007ff600512cec in abts_run_suites (suite=0x0) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/logunit.cpp:66
#10 0x00007ff60051277d in main (argc=2, argv=0x16ae8ebe580) at D:/a/logging-log4cxx/logging-log4cxx/log4cxx/src/test/cpp/abts.cpp:595
warning: Exception condition detected on fd 0
error detected on stdin
(gdb) A debugging session is active.

    Inferior 1 [process 3924] will be detached.

Quit anyway? (y or n) [answered Y; input not from terminal]
[Inferior 1 (process 3924) detached]