mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 04:33:26 +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,
|
// 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.
|
||||||
|
@ -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,
|
||||||
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user