This is an automated email from the ASF dual-hosted git repository.
twice pushed a commit to branch unstable
in repository https://gitbox.apache.org/repos/asf/kvrocks.git
The following commit(s) were added to refs/heads/unstable by this push:
new 88ac2336 chore: bump glog to 0.7.1 (#2106)
88ac2336 is described below
commit 88ac233652f9b75df2ddcc99e4f64989bffc4295
Author: Aleks Lozovyuk <[email protected]>
AuthorDate: Tue Nov 19 04:19:46 2024 +0200
chore: bump glog to 0.7.1 (#2106)
Co-authored-by: Yaroslav <[email protected]>
Co-authored-by: Twice <[email protected]>
Co-authored-by: Twice <[email protected]>
---
cmake/glog.cmake | 4 +--
src/cli/main.cc | 5 +--
src/config/config.cc | 6 ++--
tests/gocase/unit/log/logclean_test.go | 63 ++++++++++++++++++++--------------
tests/gocase/util/server.go | 4 +++
5 files changed, 49 insertions(+), 33 deletions(-)
diff --git a/cmake/glog.cmake b/cmake/glog.cmake
index 5e9c1268..50b892fe 100644
--- a/cmake/glog.cmake
+++ b/cmake/glog.cmake
@@ -20,8 +20,8 @@ include_guard()
include(cmake/utils.cmake)
FetchContent_DeclareGitHubWithMirror(glog
- google/glog v0.6.0
- MD5=1b246d4d0e8a011d33e0813b256198ef
+ google/glog v0.7.1
+ MD5=fa30180d4284c454bdd324ad3baf7f5f
)
FetchContent_MakeAvailableWithArgs(glog
diff --git a/src/cli/main.cc b/src/cli/main.cc
index 2ce5f013..9eeab518 100644
--- a/src/cli/main.cc
+++ b/src/cli/main.cc
@@ -31,6 +31,7 @@
#include <ostream>
#include "daemon_util.h"
+#include "glog/log_severity.h"
#include "io_util.h"
#include "pid_util.h"
#include "scope_exit.h"
@@ -100,7 +101,7 @@ static void InitGoogleLog(const Config *config) {
if (util::EqualICase(config->log_dir, "stdout")) {
for (int level = google::INFO; level <= google::FATAL; level++) {
- google::SetLogDestination(level, "");
+ google::SetLogDestination(static_cast<google::LogSeverity>(level), "");
}
FLAGS_stderrthreshold = google::ERROR;
FLAGS_logtostdout = true;
@@ -108,7 +109,7 @@ static void InitGoogleLog(const Config *config) {
} else {
FLAGS_log_dir = config->log_dir + "/";
if (config->log_retention_days != -1) {
- google::EnableLogCleaner(config->log_retention_days);
+ google::EnableLogCleaner(std::chrono::hours(24) *
config->log_retention_days);
}
}
}
diff --git a/src/config/config.cc b/src/config/config.cc
index c2491844..1d74a887 100644
--- a/src/config/config.cc
+++ b/src/config/config.cc
@@ -106,7 +106,7 @@ std::string TrimRocksDbPrefix(std::string s) {
}
Status SetRocksdbCompression(Server *srv, const rocksdb::CompressionType
compression,
- const int compression_start_level) {
+ const size_t compression_start_level) {
if (!srv) return Status::OK();
std::string compression_option;
for (auto &option : engine::CompressionOptions) {
@@ -128,7 +128,7 @@ Status SetRocksdbCompression(Server *srv, const
rocksdb::CompressionType compres
for (int i = 0; i < compression_start_level; i++) {
compression_per_level_builder.emplace_back("kNoCompression");
}
- for (int i = compression_start_level; i < KVROCKS_MAX_LSM_LEVEL; i++) {
+ for (size_t i = compression_start_level; i < KVROCKS_MAX_LSM_LEVEL; i++) {
compression_per_level_builder.emplace_back(compression_option);
}
const std::string compression_per_level = util::StringJoin(
@@ -600,7 +600,7 @@ void Config::initFieldCallback() {
}
if (log_retention_days != -1) {
- google::EnableLogCleaner(log_retention_days);
+ google::EnableLogCleaner(std::chrono::hours(24) *
log_retention_days);
} else {
google::DisableLogCleaner();
}
diff --git a/tests/gocase/unit/log/logclean_test.go
b/tests/gocase/unit/log/logclean_test.go
index b3d6ac80..e4f07363 100644
--- a/tests/gocase/unit/log/logclean_test.go
+++ b/tests/gocase/unit/log/logclean_test.go
@@ -21,47 +21,58 @@ package log
import (
"os"
+ "strings"
"testing"
- "time"
"github.com/apache/kvrocks/tests/gocase/util"
"github.com/stretchr/testify/require"
)
-func TestLogClean(t *testing.T) {
+const infoLogFileNamePart = ".INFO."
+
+func TestInfoLogClean(t *testing.T) {
logDir := "/tmp/kvrocks/logfile"
require.NoError(t, os.RemoveAll(logDir))
require.NoError(t, os.MkdirAll(logDir, os.ModePerm))
srv := util.StartServer(t, map[string]string{
"log-dir": logDir,
- "log-retention-days": "0",
+ "log-retention-days": "-1",
+ })
+ srv.CloseWithoutCleanup()
+
+ logInfoFiles := getInfoLogFilesInDir(t, logDir)
+ require.NotEmpty(t, logInfoFiles)
+
+ srv = util.StartServer(t, map[string]string{
+ "log-dir": logDir,
+ "log-retention-days": "0", // all previous INFO level logs
should be immediately removed
})
defer srv.Close()
- files1, err := os.ReadDir(logDir)
+ logInfoFiles = getInfoLogFilesInDir(t, logDir)
+ require.Empty(t, logInfoFiles) // the log directory doesn't contain any
INFO level log files
+}
+
+func getInfoLogFilesInDir(t *testing.T, dir string) []os.DirEntry {
+ t.Helper()
+
+ files, err := os.ReadDir(dir)
require.NoError(t, err)
- if len(files1) == 0 {
- return
- }
- require.Eventually(t, func() bool {
- srv.Restart()
-
- files2, err := os.ReadDir(logDir)
- require.NoError(t, err)
- for _, f1 := range files1 {
- fileExists := false
- for _, f2 := range files2 {
- if f1.Name() == f2.Name() {
- fileExists = true
- break
- }
- }
- // If the file does not exist, it means the file has
been cleaned
- if !fileExists {
- return true
- }
+
+ infoLogFiles := make([]os.DirEntry, 0, len(files))
+
+ for _, f := range files {
+ if !f.Type().IsRegular() {
+ continue
+ }
+
+ if !strings.Contains(f.Name(), infoLogFileNamePart) {
+ continue
}
- return false
- }, 10*time.Second, 200*time.Millisecond)
+
+ infoLogFiles = append(infoLogFiles, f)
+ }
+
+ return infoLogFiles
}
diff --git a/tests/gocase/util/server.go b/tests/gocase/util/server.go
index 88a6211b..2b60100c 100644
--- a/tests/gocase/util/server.go
+++ b/tests/gocase/util/server.go
@@ -114,6 +114,10 @@ func (s *KvrocksServer) Close() {
s.close(false)
}
+func (s *KvrocksServer) CloseWithoutCleanup() {
+ s.close(true)
+}
+
func (s *KvrocksServer) close(keepDir bool) {
require.NoError(s.t, s.cmd.Process.Signal(syscall.SIGTERM))
f := func(err error) { require.NoError(s.t, err) }