aboutsummaryrefslogtreecommitdiffstats
path: root/client/go/internal/admin/vespa-wrapper/configserver/check.go
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2023-05-16 16:05:31 +0200
committerGitHub <noreply@github.com>2023-05-16 16:05:31 +0200
commit19a6e881c127fdefc42af08b7ffe37b0b693e0c2 (patch)
treef4fbd131d00ecbcc2d05b0058faad140f3da168b /client/go/internal/admin/vespa-wrapper/configserver/check.go
parent3b9946d1f95fca491122b017e8e1f85416dd6a35 (diff)
Revert "wait for ping OK to majority of configserver hosts"
Diffstat (limited to 'client/go/internal/admin/vespa-wrapper/configserver/check.go')
-rw-r--r--client/go/internal/admin/vespa-wrapper/configserver/check.go102
1 files changed, 0 insertions, 102 deletions
diff --git a/client/go/internal/admin/vespa-wrapper/configserver/check.go b/client/go/internal/admin/vespa-wrapper/configserver/check.go
index 22a78f222c8..a0248dd128f 100644
--- a/client/go/internal/admin/vespa-wrapper/configserver/check.go
+++ b/client/go/internal/admin/vespa-wrapper/configserver/check.go
@@ -5,15 +5,10 @@ package configserver
import (
"fmt"
- "os"
- "strings"
- "time"
"github.com/vespa-engine/vespa/client/go/internal/admin/defaults"
- "github.com/vespa-engine/vespa/client/go/internal/admin/envvars"
"github.com/vespa-engine/vespa/client/go/internal/admin/trace"
"github.com/vespa-engine/vespa/client/go/internal/util"
- "github.com/vespa-engine/vespa/client/go/internal/vespa"
)
func checkIsConfigserver(myname string) {
@@ -27,100 +22,3 @@ func checkIsConfigserver(myname string) {
trace.Warning("only these hosts should run a config server:", onlyHosts)
util.JustExitMsg(fmt.Sprintf("this host [%s] should not run a config server", myname))
}
-
-type pingChecker struct {
- hostNames []string
- lastErr map[string]error
- lastOut map[string]string
- backticks util.BackTicks
-}
-
-func (pc *pingChecker) runPing(hostname string) (out string, err error) {
- out, err = pc.backticks.Run("ping6", "-c", "1", "-q", hostname)
- if err == nil {
- return
- }
- out, err = pc.backticks.Run("ping", "-c", "1", "-q", hostname)
- return
-}
-
-func (pc *pingChecker) ping(hostname string) bool {
- out, err := pc.runPing(hostname)
- pc.lastErr[hostname] = err
- pc.lastOut[hostname] = strings.TrimSuffix(out, "\n")
- return err == nil
-}
-
-func (pc *pingChecker) pingAll() {
- for _, hn := range pc.hostNames {
- pc.ping(hn)
- }
-}
-
-func (pc *pingChecker) countOk() int {
- isOk := 0
- for _, err := range pc.lastErr {
- if err == nil {
- isOk++
- }
- }
- return isOk
-}
-
-func (pc *pingChecker) requiredOk() int {
- return len(pc.hostNames)/2 + 1
-}
-
-func (pc *pingChecker) printErrors() {
- for hn, err := range pc.lastErr {
- if err != nil {
- out := pc.lastOut[hn]
- trace.Warning("failed to 'ping' host:", hn, "=>", err, "command output:", out)
- }
- }
-}
-
-func waitForDnsResolving() {
- onlyHosts := defaults.VespaConfigserverHosts()
- if len(onlyHosts) < 2 {
- // no wait in single-node case
- return
- }
- if os.Getenv(envvars.VESPA_SKIP_PING) != "" {
- trace.Debug("skipping DNS resolution check")
- return
- }
- helper := pingChecker{
- hostNames: onlyHosts,
- lastErr: make(map[string]error),
- lastOut: make(map[string]string),
- backticks: util.BackTicksWithStderr,
- }
- myname, _ := vespa.FindOurHostname()
- if !helper.ping(myname) {
- trace.Warning("self-ping failed, consider skipping this check")
- }
- trace.Debug("check DNS resolution, require", helper.requiredOk(), "OK answers")
- for i := 0; i < 180; i++ {
- helper.pingAll()
- isOk := helper.countOk()
- if isOk >= helper.requiredOk() {
- if i > 2 || isOk < len(onlyHosts) {
- trace.Info("successful 'ping' of", isOk, "configservers after", i, "retries")
- }
- helper.printErrors()
- return
- }
- if i%10 == 2 {
- trace.Warning("waiting for successful 'ping' of configservers", onlyHosts)
- }
- if i%40 == 3 {
- helper.printErrors()
- }
- if i == 2 {
- trace.Warning(fmt.Sprintf("set %s=true in environment to skip this check", envvars.VESPA_SKIP_PING))
- }
- time.Sleep(1000 * time.Millisecond)
- }
- util.JustExitMsg("Giving up waiting for working 'ping' of enough configservers")
-}