Merge pull request #114724 from tnqn/fix-lb-svc-delete-error

Do not log errors when ServiceHealthServer is closed normally
This commit is contained in:
Kubernetes Prow Robot 2023-01-11 10:31:45 -08:00 committed by GitHub
commit 7372e7e807
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 8 deletions

View File

@ -39,6 +39,7 @@ type httpServerFactory interface {
// It is designed so that http.Server satisfies this interface, // It is designed so that http.Server satisfies this interface,
type httpServer interface { type httpServer interface {
Serve(listener net.Listener) error Serve(listener net.Listener) error
Close() error
} }
// Implement listener in terms of net.Listen. // Implement listener in terms of net.Listen.

View File

@ -104,6 +104,10 @@ func (fake *fakeHTTPServer) Serve(listener net.Listener) error {
return nil // Cause the goroutine to return return nil // Cause the goroutine to return
} }
func (fake *fakeHTTPServer) Close() error {
return nil
}
func mknsn(ns, name string) types.NamespacedName { func mknsn(ns, name string) types.NamespacedName {
return types.NamespacedName{ return types.NamespacedName{
Namespace: ns, Namespace: ns,

View File

@ -150,7 +150,6 @@ type hcInstance struct {
nsn types.NamespacedName nsn types.NamespacedName
port uint16 port uint16
listeners []net.Listener
httpServers []httpServer httpServers []httpServer
endpoints int // number of local endpoints for a service endpoints int // number of local endpoints for a service
@ -162,7 +161,6 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
var listener net.Listener var listener net.Listener
addresses := hcs.nodeAddresses.List() addresses := hcs.nodeAddresses.List()
hcI.listeners = make([]net.Listener, 0, len(addresses))
hcI.httpServers = make([]httpServer, 0, len(addresses)) hcI.httpServers = make([]httpServer, 0, len(addresses))
// for each of the node addresses start listening and serving // for each of the node addresses start listening and serving
@ -181,16 +179,15 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
// start serving // start serving
go func(hcI *hcInstance, listener net.Listener, httpSrv httpServer) { go func(hcI *hcInstance, listener net.Listener, httpSrv httpServer) {
// Serve() will exit when the listener is closed. // Serve() will exit and return ErrServerClosed when the http server is closed.
klog.V(3).InfoS("Starting goroutine for healthcheck", "service", hcI.nsn, "address", listener.Addr()) klog.V(3).InfoS("Starting goroutine for healthcheck", "service", hcI.nsn, "address", listener.Addr())
if err := httpSrv.Serve(listener); err != nil { if err := httpSrv.Serve(listener); err != nil && err != http.ErrServerClosed {
klog.ErrorS(err, "Healthcheck closed", "service", hcI.nsn) klog.ErrorS(err, "Healthcheck closed", "service", hcI.nsn)
return return
} }
klog.V(3).InfoS("Healthcheck closed", "service", hcI.nsn, "address", listener.Addr()) klog.V(3).InfoS("Healthcheck closed", "service", hcI.nsn, "address", listener.Addr())
}(hcI, listener, httpSrv) }(hcI, listener, httpSrv)
hcI.listeners = append(hcI.listeners, listener)
hcI.httpServers = append(hcI.httpServers, httpSrv) hcI.httpServers = append(hcI.httpServers, httpSrv)
} }
@ -199,9 +196,9 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
func (hcI *hcInstance) closeAll() error { func (hcI *hcInstance) closeAll() error {
errors := []error{} errors := []error{}
for _, listener := range hcI.listeners { for _, server := range hcI.httpServers {
if err := listener.Close(); err != nil { if err := server.Close(); err != nil {
klog.ErrorS(err, "Error closing listener for health check service", "service", hcI.nsn, "address", listener.Addr()) klog.ErrorS(err, "Error closing server for health check service", "service", hcI.nsn)
errors = append(errors, err) errors = append(errors, err)
} }
} }