mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
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.
This commit is contained in:
parent
50ae5b7989
commit
cb6d518d07
3 changed files with 30 additions and 1 deletions
|
@ -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.
|
||||
*
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue