cmd/bent: always rewrite go.mod in build subdirectory

Possibility of reusing an older one could lead to inconsistent results or errors.

Change-Id: I56fdf070bb8aab25b37b0665e1878397e8992cfb
Reviewed-on: https://go-review.googlesource.com/c/benchmarks/+/379539
Trust: David Chase <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
diff --git a/cmd/bent/bent.go b/cmd/bent/bent.go
index 0a2472f..22d681a 100644
--- a/cmd/bent/bent.go
+++ b/cmd/bent/bent.go
@@ -546,25 +546,26 @@
 				os.Exit(2)
 			}
 			goDotMod := path.Join(bench.BuildDir, "go.mod")
-			if _, err := os.Stat(goDotMod); err != nil { // if error assume go.mod does not exist
-				cmd := exec.Command("go", "mod", "init", "build")
-				cmd.Env = defaultEnv
-				cmd.Dir = bench.BuildDir
+			if _, err := os.Stat(goDotMod); err == nil {
+				os.Remove(goDotMod) // always want a fresh go.mod
+			}
+			cmd := exec.Command("go", "mod", "init", "build")
+			cmd.Env = defaultEnv
+			cmd.Dir = bench.BuildDir
 
-				if verbose > 0 {
-					fmt.Println(asCommandLine(dirs.wd, cmd))
-				} else {
-					fmt.Print(".")
-				}
-				_, err := cmd.Output()
-				if err != nil {
-					ee := err.(*exec.ExitError)
-					fmt.Printf("There was an error running 'go mod init', stderr = %s", ee.Stderr)
-					os.Exit(2)
-				}
+			if verbose > 0 {
+				fmt.Println(asCommandLine(dirs.wd, cmd))
+			} else {
+				fmt.Print(".")
+			}
+			_, err := cmd.Output()
+			if err != nil {
+				ee := err.(*exec.ExitError)
+				fmt.Printf("There was an error running 'go mod init', stderr = %s", ee.Stderr)
+				os.Exit(2)
 			}
 
-			cmd := exec.Command("go", "get", "-d", "-t", "-v", bench.Repo+bench.Version)
+			cmd = exec.Command("go", "get", "-d", "-t", "-v", bench.Repo+bench.Version)
 			cmd.Env = replaceEnvs(defaultEnv, bench.GcEnv)
 			cmd.Dir = bench.BuildDir
 
@@ -576,7 +577,7 @@
 			} else {
 				fmt.Print(".")
 			}
-			_, err := cmd.Output()
+			_, err = cmd.Output()
 			if err != nil {
 				ee := err.(*exec.ExitError)
 				s := fmt.Sprintf("There was an error running 'go get', stderr = %s", ee.Stderr)