Details
Description
1. I created two instance of logger, One for a send thread and the other for a receive thread.
2. The send and receive is performing in its maximum speed with a peer machine.
Result: Program crashed after creating ~10MB of log File
CALL STACK : 0000004c()
std::_Destroy(log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction> * 0x015e0218) line 38 + 15 bytes
std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction> >::destroy(log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction> * 0x015e0218) line 68 + 16 bytes
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction> > >::_Destroy(log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction> * 0x015e0218, log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction> * 0x015e0250) line 231 + 12 bytes
std::vector<log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction>,std::allocator<log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction> > >::~vector<log4cxx::helpers::ObjectPtrT<log4cxx::rolling::FileRenameAction>,std::allocat17992dc7() line 59
log4cxx::rolling::FixedWindowRollingPolicy::purge(int 1, int 10, log4cxx::helpers::Pool &
log4cxx::rolling::FixedWindowRollingPolicy::rollover(const std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > & {0x015f2212}, log4cxx::helpers::Pool & {...}
) line 135 + 32 bytes
log4cxx::rolling::RollingFileAppenderSkeleton::rollover(log4cxx::helpers::Pool &
log4cxx::rolling::RollingFileAppenderSkeleton::subAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 252log4cxx::WriterAppender::append(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 89log4cxx::AppenderSkeleton::doAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 143log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 70log4cxx::Logger::callAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 93 + 33 byteslog4cxx::Logger::forcedLog(const log4cxx::helpers::ObjectPtrT<log4cxx::Level> & {...}
, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
{0x0038e009 "EtAdReadVariableDintValue: varId=2 returning 120"}) line 196
log4cxx::Logger::debug(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
) line 598 + 44 bytes
EtAdReadVariableDintValue(int 2, int * 0x0038e208, int 120) line 2500 + 59 bytes
listLocalVariable(int 2) line 306 + 18 bytes
tCounter(void * 0x00000000) line 483 + 12 bytes
MSVCRT! 77c3a243()
KERNEL32! 7c80b729()
3. Repeated the process with a single instance of the logger
Result: Program crashed after creating ~10MB of log File
CALL STACK : NTDLL! 7c9101b3()
LOG4CXX! _heap_alloc + 237 bytes
LOG4CXX! _nh_malloc + 16 bytes
LOG4CXX! operator new(unsigned int) + 11 bytes
std::_Allocate(int 33, unsigned short * 0x00000000) line 30 + 11 bytes
std::allocator<unsigned short>::allocate(unsigned int 33, const void * 0x00000000) line 59 + 18 bytes
std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >::_Copy(unsigned int 23) line 526 + 17 bytes
std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >::_Grow(unsigned int 23, unsigned char 0) line 570
std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >::append(const std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > &
std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> >::append(const std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > & {0x015e040a}
) line 77 + 23 bytes
log4cxx::pattern::CachedDateFormat::format(std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > &
log4cxx::pattern::DatePatternConverter::format(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}, std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > & {0x00000000}
, log4cxx::helpers::Pool &
{...}) line 105log4cxx::PatternLayout::format(std::basic_string<unsigned short,std::char_traits<unsigned short>,std::allocator<unsigned short> > & {0x00000000}, const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 91log4cxx::WriterAppender::subAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 214log4cxx::rolling::RollingFileAppenderSkeleton::subAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 257log4cxx::WriterAppender::append(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 89log4cxx::AppenderSkeleton::doAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 143log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 70log4cxx::Logger::callAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}
, log4cxx::helpers::Pool &
{...}) line 93 + 33 byteslog4cxx::Logger::forcedLog(const log4cxx::helpers::ObjectPtrT<log4cxx::Level> & {...}
, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
{0x00385341 "EtAdReadVariableDintValue: varId=1 returning 120"}) line 196
log4cxx::Logger::debug(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
) line 598 + 44 bytes
EtAdReadVariableDintValue(int 1, int * 0x0038dd88, int 120) line 2500 + 59 bytes
listLocalVariable(int 1) line 305 + 18 bytes
tCounter(void * 0x00000000) line 482 + 12 bytes
MSVCRT! 77c3a243()
KERNEL32! 7c