mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 03:41:45 +00:00
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:
commit
7372e7e807
@ -39,6 +39,7 @@ type httpServerFactory interface {
|
||||
// It is designed so that http.Server satisfies this interface,
|
||||
type httpServer interface {
|
||||
Serve(listener net.Listener) error
|
||||
Close() error
|
||||
}
|
||||
|
||||
// Implement listener in terms of net.Listen.
|
||||
|
@ -104,6 +104,10 @@ func (fake *fakeHTTPServer) Serve(listener net.Listener) error {
|
||||
return nil // Cause the goroutine to return
|
||||
}
|
||||
|
||||
func (fake *fakeHTTPServer) Close() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func mknsn(ns, name string) types.NamespacedName {
|
||||
return types.NamespacedName{
|
||||
Namespace: ns,
|
||||
|
@ -150,7 +150,6 @@ type hcInstance struct {
|
||||
nsn types.NamespacedName
|
||||
port uint16
|
||||
|
||||
listeners []net.Listener
|
||||
httpServers []httpServer
|
||||
|
||||
endpoints int // number of local endpoints for a service
|
||||
@ -162,7 +161,6 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
|
||||
var listener net.Listener
|
||||
|
||||
addresses := hcs.nodeAddresses.List()
|
||||
hcI.listeners = make([]net.Listener, 0, len(addresses))
|
||||
hcI.httpServers = make([]httpServer, 0, len(addresses))
|
||||
|
||||
// for each of the node addresses start listening and serving
|
||||
@ -181,16 +179,15 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
|
||||
|
||||
// start serving
|
||||
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())
|
||||
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)
|
||||
return
|
||||
}
|
||||
klog.V(3).InfoS("Healthcheck closed", "service", hcI.nsn, "address", listener.Addr())
|
||||
}(hcI, listener, httpSrv)
|
||||
|
||||
hcI.listeners = append(hcI.listeners, listener)
|
||||
hcI.httpServers = append(hcI.httpServers, httpSrv)
|
||||
}
|
||||
|
||||
@ -199,9 +196,9 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
|
||||
|
||||
func (hcI *hcInstance) closeAll() error {
|
||||
errors := []error{}
|
||||
for _, listener := range hcI.listeners {
|
||||
if err := listener.Close(); err != nil {
|
||||
klog.ErrorS(err, "Error closing listener for health check service", "service", hcI.nsn, "address", listener.Addr())
|
||||
for _, server := range hcI.httpServers {
|
||||
if err := server.Close(); err != nil {
|
||||
klog.ErrorS(err, "Error closing server for health check service", "service", hcI.nsn)
|
||||
errors = append(errors, err)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user