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

Sporadic crash in CachedDateFormat::millisecondFormat()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Fixed
    • 0.11.0
    • None
    • Core
    • None
    • Windows 7, Visual C++ 2008 (SP1)

    Description

      The method CachedDateFormat::findMillisecondStart() was changed in rev 1559522 for LOG4CXX-420.

      Since then I experience sporadic crashes in the method CachedDateFormat::millisecondFormat(). Further investigation showed that the specified parameter 'buf' is sometimes undefined, so any try to write sporadically fails.

      I have a debugging session open with the crash at the time of this writing. The current log message is "Current spot Reichenspergerplatz - EBP at (3,13) of entry 582" and should be written to a ConsoleAppender. The current conversion pattern is "%d %p [%c] %m%n". The call stack at the crash is (sorry, german version of vc2008):
      log4cxx.dll!log4cxx::pattern::CachedDateFormat::millisecondFormat(int millis=147018584, std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > & buf=<Schlechtes Ptr>, int offset=22) Zeile 236 + 0x12 Bytes
      log4cxx.dll!log4cxx::pattern::CachedDateFormat::format(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > & buf="", __int64 now=1390993757666876, log4cxx::helpers::Pool & p=

      {...}) Zeile 189 + 0x21 Bytes
      log4cxx.dll!log4cxx::pattern::DatePatternConverter::format(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & event={...}

      , std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > & toAppendTo="", log4cxx::helpers::Pool & p=

      {...}) Zeile 104 + 0x23 Bytes
      log4cxx.dll!log4cxx::PatternLayout::format(std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> > & output="", const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & event={...}

      , log4cxx::helpers::Pool & pool=

      {...}) Zeile 91
      log4cxx.dll!log4cxx::WriterAppender::subAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & event={...}

      , log4cxx::helpers::Pool & p=

      {...}) Zeile 217
      log4cxx.dll!log4cxx::WriterAppender::append(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & event={...}

      , log4cxx::helpers::Pool & pool1=

      {...}) Zeile 88 + 0x13 Bytes
      log4cxx.dll!log4cxx::AppenderSkeleton::doAppend(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & event={...}

      , log4cxx::helpers::Pool & pool1=

      {...}) Zeile 143
      log4cxx.dll!log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & event={...}

      , log4cxx::helpers::Pool & p=

      {...}) Zeile 69 + 0x29 Bytes
      log4cxx.dll!log4cxx::Logger::callAppenders(const log4cxx::helpers::ObjectPtrT<log4cxx::spi::LoggingEvent> & event={...}

      , log4cxx::helpers::Pool & p=

      {...}) Zeile 97 + 0x12 Bytes
      log4cxx.dll!log4cxx::Logger::forcedLog(const log4cxx::helpers::ObjectPtrT<log4cxx::Level> & level1={...}

      , const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & message="Current spot Reichenspergerplatz - EBP at (3,13) of entry 582", const log4cxx::spi::LocationInfo & location=

      {...}

      ) Zeile 129

      Translation help:
      Zeile = line
      Schlechtes Ptr = bad pointer

      Please call back if you need further information.

      Attachments

        Activity

          People

            tschoening Thorsten Schöning
            joerghansen Jörg Hansen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: