Uploaded image for project: 'Log4cxx'
  1. Log4cxx
  2. LOGCXX-364

log4cxx Crash occurred while multiple threads accessing in Windows XP dual core machine

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Cannot Reproduce
    • Affects Version/s: 0.10.0
    • Fix Version/s: None
    • Component/s: Appender, Layout
    • Environment:
      Intel x86 Core 2 Duo, Windows XP , Build using Visual Studio 6.0

      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 &

      {...}) line 283 + 58 bytes
      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 &

      {...}) line 145 + 104 bytes
      log4cxx::rolling::RollingFileAppenderSkeleton::subAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 252
      log4cxx::WriterAppender::append(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 89
      log4cxx::AppenderSkeleton::doAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 143
      log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 70
      log4cxx::Logger::callAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 93 + 33 bytes
      log4cxx::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> > &

      {0x0038e009 "EtAdReadVariableDintValue: varId=2 returning 120"}

      ) 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> > &

      {0x015e040a}, unsigned int 0, unsigned int 23) line 86 + 32 bytes
      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> > &

      {0x00000000}, __int64 1273818564875000, log4cxx::helpers::Pool & {...}) line 171
      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 105
      log4cxx::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 91
      log4cxx::WriterAppender::subAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 214
      log4cxx::rolling::RollingFileAppenderSkeleton::subAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 257
      log4cxx::WriterAppender::append(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 89
      log4cxx::AppenderSkeleton::doAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 143
      log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 70
      log4cxx::Logger::callAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & {...}

      , log4cxx::helpers::Pool &

      {...}) line 93 + 33 bytes
      log4cxx::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> > &

      {0x00385341 "EtAdReadVariableDintValue: varId=1 returning 120"}

      ) 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

        Attachments

          Activity

            People

            • Assignee:
              carnold@apache.org Curt Arnold
              Reporter:
              lalkishor Lalkishor G
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 120h
                120h
                Remaining:
                Remaining Estimate - 120h
                120h
                Logged:
                Time Spent - Not Specified
                Not Specified