From 569363530ac7734f85eae8714e52edc1a793935e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=98=AD?= <81747598+lan-yonghui@users.noreply.github.com> Date: Mon, 23 Mar 2026 15:52:04 +0800 Subject: [PATCH] fix: Fix the issue of preserving archive modification time during the decompression process of gz files (#12297) --- agent/utils/files/file_op.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/agent/utils/files/file_op.go b/agent/utils/files/file_op.go index 31b786318..3788f509a 100644 --- a/agent/utils/files/file_op.go +++ b/agent/utils/files/file_op.go @@ -999,6 +999,11 @@ func ZipFile(files []archiver.File, dst afero.File) error { } func (f FileOp) DecompressGzFile(srcFile, dst string) error { + var archiveModTime time.Time + if st, err := f.Fs.Stat(srcFile); err == nil { + archiveModTime = st.ModTime() + } + in, err := f.Fs.Open(srcFile) if err != nil { return fmt.Errorf("open source file failed: %w", err) @@ -1030,8 +1035,8 @@ func (f FileOp) DecompressGzFile(srcFile, dst string) error { return fmt.Errorf("copy content failed: %w", err) } - if !gr.ModTime.IsZero() { - _ = os.Chtimes(outPath, gr.ModTime, gr.ModTime) + if !archiveModTime.IsZero() { + _ = os.Chtimes(outPath, archiveModTime, archiveModTime) } return nil