From 55cd5b9820b33d0b85cfc2f9003985607241c03c Mon Sep 17 00:00:00 2001 From: Andrei Cheboksarov <37665782+cheb0@users.noreply.github.com> Date: Wed, 15 Jul 2026 17:47:52 +0400 Subject: [PATCH] fix file descriptor on corrupted WAL copy --- fracmanager/fracmanager.go | 2 +- fracmanager/metrics.go | 4 ++-- util/fs.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/fracmanager/fracmanager.go b/fracmanager/fracmanager.go index 047e00ab..abd72846 100644 --- a/fracmanager/fracmanager.go +++ b/fracmanager/fracmanager.go @@ -225,7 +225,7 @@ func startStatsWorker(ctx context.Context, cfg *Config, reg *fractionRegistry, w stats.SetMetrics() // Update Prometheus metrics corruptions := countDocsFiles(filepath.Join(cfg.DataDir, consts.BrokenDir)) - walCorruptionsTotal.Add(float64(corruptions)) + walCorruptions.Set(float64(corruptions)) }) logger.Info("stats loop is stopped") }() diff --git a/fracmanager/metrics.go b/fracmanager/metrics.go index 016ecfca..ba1c7748 100644 --- a/fracmanager/metrics.go +++ b/fracmanager/metrics.go @@ -213,10 +213,10 @@ var ( Help: "Number of bytes read from disk storage", }) - walCorruptionsTotal = promauto.NewGauge(prometheus.GaugeOpts{ + walCorruptions = promauto.NewGauge(prometheus.GaugeOpts{ Namespace: "seq_db_store", Subsystem: "storage", - Name: "wal_corruptions_total", + Name: "wal_corruptions", Help: "Number of WAL files with detected corruption during replay", }) ) diff --git a/util/fs.go b/util/fs.go index 861293ca..91d80678 100644 --- a/util/fs.go +++ b/util/fs.go @@ -152,7 +152,7 @@ func CopyFile(src, dst string) error { } defer in.Close() - out, err := os.OpenFile(dst, os.O_CREATE|os.O_TRUNC, 0o666) + out, err := os.OpenFile(dst, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0o666) if err != nil { return err }