Commit efeafb25 authored by unknown's avatar unknown
Browse files

Fix for BUG#21345, Error in cluster logfile rotation.

Fixed the cluster logfile rotation code, let the cluster logfile be renamed correctly when the main logfile exceeds the configured maximum size.


ndb/include/util/File.hpp:
  Fix for BUG#21345, Error in cluster logfile rotation.
ndb/src/common/logger/FileLogHandler.cpp:
  Fix for BUG#21345, Error in cluster logfile rotation.
ndb/src/common/util/File.cpp:
  Fix for BUG#21345, Error in cluster logfile rotation.
parent bfdbb780
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -28,6 +28,14 @@
class File_class
{
public:
  /**
   * Returns time for last contents modification of a file.
   *
   * @param aFileName a filename to check.
   * @return the time for last contents modificaton of the file.
   */
  static time_t mtime(const char* aFileName);      

  /**
   * Returns true if the file exist.
   *
+10 −1
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ FileLogHandler::createNewFile()
  bool rc = true;	
  int fileNo = 1;
  char newName[PATH_MAX];
  time_t newMtime, preMtime = 0;

  do
  {
@@ -159,7 +160,15 @@ FileLogHandler::createNewFile()
    }		
    BaseString::snprintf(newName, sizeof(newName),
	       "%s.%d", m_pLogFile->getName(), fileNo++); 
    
    newMtime = File_class::mtime(newName);
    if (newMtime < preMtime) 
    {
      break;
    }
    else
    {
      preMtime = newMtime;
    }
  } while (File_class::exists(newName));
  
  m_pLogFile->close();	
+12 −0
Original line number Diff line number Diff line
@@ -24,6 +24,18 @@
//
// PUBLIC
//
time_t 
File_class::mtime(const char* aFileName)
{
  MY_STAT stmp;
  time_t rc = 0;

  if (my_stat(aFileName, &stmp, MYF(0)) != NULL) {
    rc = stmp.st_mtime;
  }

  return rc;
}

bool 
File_class::exists(const char* aFileName)