From 763f3a1db40eacb5d549088dbcd4ec29634ece24 Mon Sep 17 00:00:00 2001 From: Daniel Jiang Date: Tue, 18 Aug 2026 16:41:22 +0800 Subject: [PATCH] Avoid io.ReadAll in buildFinalTarball() (#10311) This commit updates the func buildFinalTarball so it won't use io.ReadAll, in order to optimize memory usage. Signed-off-by: Daniel Jiang --- pkg/backup/backup.go | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/pkg/backup/backup.go b/pkg/backup/backup.go index 30eb26a36..038b85cc1 100644 --- a/pkg/backup/backup.go +++ b/pkg/backup/backup.go @@ -1263,21 +1263,12 @@ func buildFinalTarball(tr *tar.Reader, tw tarWriter, updateFiles map[string]File return errors.WithStack(err) } delete(updateFiles, header.Name) - // skip over file contents from old tarball - _, err := io.ReadAll(tr) - if err != nil { - return errors.WithStack(err) - } } else { // Add original content to new tarball, as item wasn't updated - oldContents, err := io.ReadAll(tr) - if err != nil { - return errors.WithStack(err) - } if err := tw.WriteHeader(header); err != nil { return errors.WithStack(err) } - if _, err := tw.Write(oldContents); err != nil { + if _, err := io.Copy(tw, tr); err != nil { return errors.WithStack(err) } }