Merge pull request #90990 from hasheddan/guestbook

Retry resolving TCP address in agnhost/guestbook
This commit is contained in:
Kubernetes Prow Robot 2020-05-13 15:59:24 -07:00 committed by GitHub
commit 9188bbbdaa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 13 deletions

View File

@ -1 +1 @@
2.16 2.17

View File

@ -49,7 +49,7 @@ import (
) )
func main() { func main() {
rootCmd := &cobra.Command{Use: "app", Version: "2.16"} rootCmd := &cobra.Command{Use: "app", Version: "2.17"}
rootCmd.AddCommand(auditproxy.CmdAuditProxy) rootCmd.AddCommand(auditproxy.CmdAuditProxy)
rootCmd.AddCommand(connect.CmdConnect) rootCmd.AddCommand(connect.CmdConnect)

View File

@ -77,19 +77,28 @@ func registerNode(registerTo, port string) {
} }
hostPort := net.JoinHostPort(registerTo, backendPort) hostPort := net.JoinHostPort(registerTo, backendPort)
_, err := net.ResolveTCPAddr("tcp", hostPort)
if err != nil {
log.Fatalf("--slaveof param and/or --backend-port param are invalid. %v", err)
return
}
request := fmt.Sprintf("register?host=%s", getIP(hostPort).String())
log.Printf("Registering to master: %s/%s", hostPort, request)
start := time.Now() start := time.Now()
for time.Since(start) < timeout { for time.Since(start) < timeout {
host, err := getIP(hostPort)
if err != nil {
log.Printf("unable to get IP %s: %v. Retrying in %s.", hostPort, err, sleep)
time.Sleep(sleep)
continue
}
request := fmt.Sprintf("register?host=%s", host.String())
log.Printf("Registering to master: %s/%s", hostPort, request)
_, err = net.ResolveTCPAddr("tcp", hostPort)
if err != nil {
log.Printf("unable to resolve %s, --slaveof param and/or --backend-port param are invalid: %v. Retrying in %s.", hostPort, err, sleep)
time.Sleep(sleep)
continue
}
response, err := dialHTTP(request, hostPort) response, err := dialHTTP(request, hostPort)
if err != nil { if err != nil {
log.Printf("encountered error while registering to master: %v. Retrying in 1 second.", err) log.Printf("encountered error while registering to master: %v. Retrying in %s.", err, sleep)
time.Sleep(sleep) time.Sleep(sleep)
continue continue
} }
@ -285,13 +294,13 @@ func createHTTPClient(transport *http.Transport) *http.Client {
return client return client
} }
func getIP(hostPort string) net.IP { func getIP(hostPort string) (net.IP, error) {
conn, err := net.Dial("udp", hostPort) conn, err := net.Dial("udp", hostPort)
if err != nil { if err != nil {
log.Fatal(err) return []byte{}, err
} }
defer conn.Close() defer conn.Close()
localAddr := conn.LocalAddr().(*net.UDPAddr) localAddr := conn.LocalAddr().(*net.UDPAddr)
return localAddr.IP return localAddr.IP, nil
} }