cmd/tip: clear error when process starts successfully

We want the error to represent an ongoing problem. It's less useful
to constantly show the last error; we have logs for that.

This will help make the _tipstatus output more readable for humans,
and more friendly to being monitored by farmer.golang.org#health.

Updates golang/go#15266
Fixes golang/go#32949

Change-Id: I20e5f180209c54b31e81e29bd45af0e2d205d3cc
Reviewed-on: https://go-review.googlesource.com/c/build/+/185139
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
diff --git a/cmd/tip/tip.go b/cmd/tip/tip.go
index 744763b..c7fd161 100644
--- a/cmd/tip/tip.go
+++ b/cmd/tip/tip.go
@@ -78,17 +78,18 @@
 }
 
 // Proxy implements the tip.golang.org server: a reverse-proxy
-// that builds and runs golangorg instances showing the latest docs.
+// that builds and runs golangorg instances showing the latest
+// Go website and standard library documentation.
 type Proxy struct {
 	builder Builder
 
 	mu       sync.Mutex // protects following fields
 	proxy    http.Handler
-	cur      string    // signature of gorepo+toolsrepo
+	cur      string    // signature of gorepo+websiterepo
 	cmd      *exec.Cmd // live golangorg instance, or nil for none
 	side     string
 	hostport string // host and port of the live instance
-	err      error
+	err      error  // non-nil when there's a problem
 }
 
 type Builder interface {
@@ -254,6 +255,7 @@
 		p.cmd.Process.Kill()
 	}
 	p.cmd = cmd
+	p.err = nil // If we get this far, the process started successfully. Clear the error.
 }
 
 type serveOptions struct {