From 93cfb1444f8b43b94946bbf3a174ac496af39333 Mon Sep 17 00:00:00 2001 From: Sandy Xu Date: Thu, 8 Aug 2024 16:21:12 +0800 Subject: [PATCH] cmd/gc: fix the issue that objects may be deleted by mistake in large systems --- cmd/gc.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/cmd/gc.go b/cmd/gc.go index 06f66de70f08..e14c4e1ab843 100644 --- a/cmd/gc.go +++ b/cmd/gc.go @@ -110,6 +110,16 @@ func gc(ctx *cli.Context) error { if (delete || compact) && threads <= 0 { logger.Fatal("threads should be greater than 0 to delete or compact objects") } + maxMtime := time.Now().Add(time.Hour * -1) + strDuration := os.Getenv("JFS_GC_SKIPPEDTIME") + if strDuration != "" { + iDuration, err := strconv.Atoi(strDuration) + if err == nil { + maxMtime = time.Now().Add(time.Second * -1 * time.Duration(iDuration)) + } else { + logger.Errorf("parse JFS_GC_SKIPPEDTIME=%s: %s", strDuration, err) + } + } var wg sync.WaitGroup var delSpin *utils.Bar @@ -262,16 +272,6 @@ func gc(ctx *cli.Context) error { compacted := progress.AddDoubleSpinnerTwo("Compacted objects", "Compacted data") leaked := progress.AddDoubleSpinnerTwo("Leaked objects", "Leaked data") skipped := progress.AddDoubleSpinnerTwo("Skipped objects", "Skipped data") - maxMtime := time.Now().Add(time.Hour * -1) - strDuration := os.Getenv("JFS_GC_SKIPPEDTIME") - if strDuration != "" { - iDuration, err := strconv.Atoi(strDuration) - if err == nil { - maxMtime = time.Now().Add(time.Second * -1 * time.Duration(iDuration)) - } else { - logger.Errorf("parse JFS_GC_SKIPPEDTIME=%s: %s", strDuration, err) - } - } var leakedObj = make(chan string, 10240) for i := 0; i < threads; i++ {