m/node/core/consensus: correctly handle failed parsing of node urls

Change-Id: Ib7a655d4bba35d5adbc28ab083d13e2eb3b82378
Reviewed-on: https://review.monogon.dev/c/monogon/+/3031
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
Vouch-Run-CI: Tim Windelschmidt <tim@monogon.tech>
diff --git a/metropolis/node/core/consensus/consensus.go b/metropolis/node/core/consensus/consensus.go
index 91c8707..3244972 100644
--- a/metropolis/node/core/consensus/consensus.go
+++ b/metropolis/node/core/consensus/consensus.go
@@ -249,14 +249,14 @@
 			allOkay := true
 			shouldLog := time.Now().After(startLogging)
 			for _, node := range jc.ExistingNodes {
-				u, _ := url.Parse(node.URL)
+				u, err := url.Parse(node.URL)
 				if err != nil {
 					// Just pretend this node is up. If the URL is really bad, etcd will complain
 					// more clearly than us. This shouldn't happen, anyway.
+					continue
 				}
 				host := u.Hostname()
-				_, err := net.LookupIP(host)
-				if err == nil {
+				if _, err := net.LookupIP(host); err == nil {
 					continue
 				}
 				if shouldLog {