Log4cxx
  1. Log4cxx
  2. LOGCXX-211

Crash(Segmentation Fault) in DailyRollingFileAppender when file change

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.10.0
    • Fix Version/s: 0.10.0
    • Component/s: Appender
    • Labels:
      None
    • Environment:
      OPENSuse 10.3 64bit

      Description

      logging.properties

      log4j.rootCategory=NONE

      #set Logger
      log4j.logger.debug=DEBUG, DEBUGLOGGER

      log4j.appender.DEBUGLOGGER=org.apache.log4j.DailyRollingFileAppender
      log4j.appender.DEBUGLOGGER.DatePattern=.%Y-%m-%d-%H-%M
      log4j.appender.DEBUGLOGGER.File=test.log
      log4j.appender.DEBUGLOGGER.MaxFileSize=1M
      log4j.appender.DEBUGLOGGER.layout=org.apache.log4j.PatternLayout
      #log4j.appender.DEBUGLOGGER.layout.ConversionPattern=%d

      {%Y/%m/%d %H:%M:%S}

      ,%F(%L)%-5p %-15c - %m%n
      log4j.appender.DEBUGLOGGER.layout.ConversionPattern=%d

      {yyyy/MM/dd HH:mm:ss,SSS}

      ,%F(%L)%5p %m%n

      when set like above, logging files change every minite (it was done in log4cxx 0.9.7)
      But after updating 0.10.0, has problem that show segmentation fault.

      Below is core dump message. ( I find it occur when change file - every minute above configuration)

      GNU gdb 6.6.50.20070726-cvs
      Copyright (C) 2007 Free Software Foundation, Inc.
      GDB is free software, covered by the GNU General Public License, and you are
      welcome to change it and/or distribute copies of it under certain conditions.
      Type "show copying" to see the conditions.
      There is absolutely no warranty for GDB. Type "show warranty" for details.
      This GDB was configured as "x86_64-suse-linux"...
      Using host libthread_db library "/lib64/libthread_db.so.1".
      Reading symbols from /home/testuser/bin/weonline/lib/libcore.so.0...done.
      Loaded symbols for /home/testuser/bin/weonline/lib/libcore.so.0
      Reading symbols from /home/testuser/bin/weonline/logreceiver/lib/libACE-5.6.so...done.
      Loaded symbols for /home/testuser/bin/weonline/logreceiver/lib/libACE-5.6.so
      Reading symbols from /home/testuser/bin/weonline/lib/libaprutil-1.so.0...done.
      Loaded symbols for /home/testuser/bin/weonline/lib/libaprutil-1.so.0
      Reading symbols from /usr/lib64/libldap-2.3.so.0...done.
      Loaded symbols for /usr/lib64/libldap-2.3.so.0
      Reading symbols from /usr/lib64/liblber-2.3.so.0...done.
      Loaded symbols for /usr/lib64/liblber-2.3.so.0
      Reading symbols from /usr/lib64/libdb-4.5.so...done.
      Loaded symbols for /usr/lib64/libdb-4.5.so
      Reading symbols from /lib64/libexpat.so.1...done.
      Loaded symbols for /lib64/libexpat.so.1
      Reading symbols from /home/testuser/bin/weonline/lib/libapr-1.so.0...done.
      Loaded symbols for /home/testuser/bin/weonline/lib/libapr-1.so.0
      Reading symbols from /lib64/librt.so.1...done.
      Loaded symbols for /lib64/librt.so.1
      Reading symbols from /lib64/libcrypt.so.1...done.
      Loaded symbols for /lib64/libcrypt.so.1
      Reading symbols from /lib64/libpthread.so.0...done.
      Loaded symbols for /lib64/libpthread.so.0
      Reading symbols from /lib64/libdl.so.2...done.
      Loaded symbols for /lib64/libdl.so.2
      Reading symbols from /home/testuser/bin/weonline/lib/liblog4cxx.so.10...done.
      Loaded symbols for /home/testuser/bin/weonline/lib/liblog4cxx.so.10
      Reading symbols from /home/testuser/bin/weonline/lib/libconfig++.so.3...done.
      Loaded symbols for /home/testuser/bin/weonline/lib/libconfig++.so.3
      Reading symbols from /home/testuser/bin/weonline/lib/libpq.so.5...done.
      Loaded symbols for /home/testuser/bin/weonline/lib/libpq.so.5
      Reading symbols from /usr/lib64/libstdc++.so.6...done.
      Loaded symbols for /usr/lib64/libstdc++.so.6
      Reading symbols from /lib64/libm.so.6...done.
      Loaded symbols for /lib64/libm.so.6
      Reading symbols from /lib64/libgcc_s.so.1...done.
      Loaded symbols for /lib64/libgcc_s.so.1
      Reading symbols from /lib64/libc.so.6...done.
      Loaded symbols for /lib64/libc.so.6
      Reading symbols from /usr/lib64/libsqlite3.so.0...done.
      Loaded symbols for /usr/lib64/libsqlite3.so.0
      Reading symbols from /lib64/libuuid.so.1...done.
      Loaded symbols for /lib64/libuuid.so.1
      Reading symbols from /lib64/libresolv.so.2...done.
      Loaded symbols for /lib64/libresolv.so.2
      Reading symbols from /usr/lib64/libsasl2.so.2...done.
      Loaded symbols for /usr/lib64/libsasl2.so.2
      Reading symbols from /usr/lib64/libssl.so.0.9.8...done.
      Loaded symbols for /usr/lib64/libssl.so.0.9.8
      Reading symbols from /usr/lib64/libcrypto.so.0.9.8...done.
      Loaded symbols for /usr/lib64/libcrypto.so.0.9.8
      Reading symbols from /lib64/ld-linux-x86-64.so.2...done.
      Loaded symbols for /lib64/ld-linux-x86-64.so.2
      Reading symbols from /lib64/libz.so.1...done.
      Loaded symbols for /lib64/libz.so.1
      Reading symbols from /usr/lib64/gconv/EUC-KR.so...done.
      Loaded symbols for /usr/lib64/gconv/EUC-KR.so
      Reading symbols from /usr/lib64/gconv/libKSC.so...done.
      Loaded symbols for /usr/lib64/gconv/libKSC.so
      Core was generated by `./logreceiver'.
      Program terminated with signal 11, Segmentation fault.
      #0 0x00002b0ceb34ff2a in apr_file_close (file=0x0) at file_io/unix/open.c:203
      203 file_io/unix/open.c: No such file or directory.
      in file_io/unix/open.c
      (gdb) bt
      #0 0x00002b0ceb34ff2a in apr_file_close (file=0x0) at file_io/unix/open.c:203
      #1 0x00002b0cebf32b37 in log4cxx::helpers::FileOutputStream::close (this=0x63e690) at ../../../../src/main/cpp/fileoutputstream.cpp:56
      #2 0x00002b0cebf8c1fa in log4cxx::rolling::CountingOutputStream::close (this=0x63e6c0, p=@0x63e590)
      at ../../../../src/main/cpp/rollingfileappender.cpp:343
      #3 0x00002b0cebf748ca in log4cxx::helpers::OutputStreamWriter::close (this=0x63eb20, p=@0x63e590)
      at ../../../../src/main/cpp/outputstreamwriter.cpp:52
      #4 0x00002b0cebfba263 in log4cxx::WriterAppender::closeWriter (this=0x63e550) at ../../../../src/main/cpp/writerappender.cpp:158
      #5 0x00002b0cebf2d9a2 in log4cxx::FileAppender::setFile (this=0x63e550, filename=@0x410005c0, append1=false, bufferedIO1=false,
      bufferSize1=8192, p=@0x41000990) at ../../../../src/main/cpp/fileappender.cpp:248
      #6 0x00002b0cebf8a7ce in log4cxx::rolling::RollingFileAppender::rollover (this=0x63e550, p=@0x41000990)
      at ../../../../src/main/cpp/rollingfileappender.cpp:185
      #7 0x00002b0cebf8b1f1 in log4cxx::rolling::RollingFileAppender::subAppend (this=0x63e550, event=@0x41000970, p=@0x41000990)
      at ../../../../src/main/cpp/rollingfileappender.cpp:256
      #8 0x00002b0cebfb99b3 in log4cxx::WriterAppender::append (this=0x63e550, event=@0x41000970, pool1=@0x41000990)
      at ../../../../src/main/cpp/writerappender.cpp:88
      #9 0x00002b0cebef524e in log4cxx::AppenderSkeleton::doAppend (this=0x63e550, event=@0x41000970, pool1=@0x41000990)
      at ../../../../src/main/cpp/appenderskeleton.cpp:132
      #10 0x00002b0cebf10fe4 in log4cxx::DailyRollingFileAppender::doAppend (this=0x63e3e0, event=@0x41000970, pool=@0x41000990)
      at ../../../../src/main/cpp/dailyrollingfileappender.cpp:122
      #11 0x00002b0cebef1fe7 in log4cxx::helpers::AppenderAttachableImpl::appendLoopOnAppenders (this=0x63e280, event=@0x41000970,
      p=@0x41000990) at ../../../../src/main/cpp/appenderattachableimpl.cpp:62
      #12 0x00002b0cebf58feb in log4cxx::Logger::callAppenders (this=0x63e070, event=@0x41000970, p=@0x41000990)
      at ../../../../src/main/cpp/logger.cpp:83
      #13 0x00002b0cebf5ad4d in log4cxx::Logger::forcedLog (this=0x63e070, level1=@0x41000cc8, message=@0x41000a30, location=@0x41000cd0)
      at ../../../../src/main/cpp/logger.cpp:114
      #14 0x00002b0cebf5ae64 in log4cxx::Logger::log (this=0x63e070, level1=@0x41000cc8, message=@0x41000a30, location=@0x41000cd0)
      at ../../../../src/main/cpp/logger.cpp:723
      #15 0x00002b0cebf62fda in log4cxx::logstream::log (this=0x41000b00, logger=@0x41000cc0, level=@0x41000cc8, location=@0x41000cd0)
      at ../../../../src/main/cpp/logstream.cpp:226
      #16 0x00002b0cebf61b24 in log4cxx::logstream_base::end_message (this=0x41000b00) at ../../../../src/main/cpp/logstream.cpp:79
      #17 0x00002b0cebf61b4f in log4cxx::logstream_base::endmsg (stream=@0x41000b00) at ../../../../src/main/cpp/logstream.cpp:73
      #18 0x00002b0cebf61fee in log4cxx::logstream::operator<< (this=0x41000b00, manip=0x406f08 <ZN7log4cxx14logstream_base6endmsgERS0@plt>)
      at ../../../../src/main/cpp/logstream.cpp:192
      #19 0x0000000000408c70 in CGameServerProxy::JobProcessing (this=0x671410, pJob=0x2aaaaaaab010) at ../../src/gameserverproxy.cpp:93
      #20 0x000000000040e27f in CServerDataWorkerThread::run (arg=0x641010) at ../../src/serverdataworkerthread.cpp:49
      #21 0x00002b0cea4f40b7 in ACE_Thread_Adapter::invoke (this=0x641800) at ../../ace/Thread_Adapter.cpp:95
      #22 0x00002b0ceb9ae020 in start_thread () from /lib64/libpthread.so.0
      #23 0x00002b0cece9a28d in clone () from /lib64/libc.so.6
      #24 0x0000000000000000 in ?? ()
      Current language: auto; currently c

        Activity

        Simon Kim created issue -
        Curt Arnold made changes -
        Field Original Value New Value
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s 0.10.0 [ 10782 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Curt Arnold
            Reporter:
            Simon Kim
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development