Files
op-packages/mosdns/patches/212-fix-mlog-fix-log-file-padded-with-null-bytes-after-e.patch
T

39 lines
1.1 KiB
Diff

From 0e78ad1d047043f9f3b4f47dea7cf9905ad09a7c Mon Sep 17 00:00:00 2001
From: sbwml <admin@cooluc.com>
Date: Wed, 19 Aug 2026 12:32:48 +0800
Subject: [PATCH 2/2] fix(mlog): fix log file padded with null bytes after
external truncation
Signed-off-by: sbwml <admin@cooluc.com>
---
mlog/rotator.go | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
--- a/mlog/rotator.go
+++ b/mlog/rotator.go
@@ -52,8 +52,13 @@ func (r *Rotator) Write(p []byte) (n int
writeLen := int64(len(p))
if r.MaxSize > 0 && r.size+writeLen > r.MaxSize {
- if err := r.rotate(); err != nil {
- return 0, err
+ if info, err := r.f.Stat(); err == nil {
+ r.size = info.Size()
+ }
+ if r.size+writeLen > r.MaxSize {
+ if err := r.rotate(); err != nil {
+ return 0, err
+ }
}
}
@@ -84,7 +89,7 @@ func (r *Rotator) openNew() error {
if err != nil {
return err
}
- f, err := os.OpenFile(r.Filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
+ f, err := os.OpenFile(r.Filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC|os.O_APPEND, 0644)
if err != nil {
return err
}