From: Tom Clegg Date: Thu, 5 Mar 2020 18:16:43 +0000 (-0500) Subject: 16217: Error out if (*pq.Listener)Ping() fails. X-Git-Tag: 2.1.0~271^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/9ebf73b1a1229bba507057ed2fb6a39635ce7e24?hp=66d3a26aa1f5fbbdcacdd332a56447fd8afd889f 16217: Error out if (*pq.Listener)Ping() fails. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- diff --git a/services/ws/event_source.go b/services/ws/event_source.go index 6ac8e01352..3a82bf62b3 100644 --- a/services/ws/event_source.go +++ b/services/ws/event_source.go @@ -7,6 +7,8 @@ package main import ( "context" "database/sql" + "errors" + "fmt" "strconv" "sync" "sync/atomic" @@ -166,11 +168,15 @@ func (ps *pgEventSource) Run() { case <-ticker.C: logger(nil).Debug("listener ping") - ps.pqListener.Ping() + err := ps.pqListener.Ping() + if err != nil { + ps.listenerProblem(-1, fmt.Errorf("pqListener ping failed: %s", err)) + continue + } case pqEvent, ok := <-ps.pqListener.Notify: if !ok { - logger(nil).Debug("pqListener Notify chan closed") + logger(nil).Error("pqListener Notify chan closed") return } if pqEvent == nil { @@ -178,7 +184,7 @@ func (ps *pgEventSource) Run() { // itself in addition to sending us a // nil event, so this might be // superfluous: - ps.listenerProblem(-1, nil) + ps.listenerProblem(-1, errors.New("pqListener Notify chan received nil event")) continue } if pqEvent.Channel != "logs" {