@@ -150,7 +150,6 @@ type hcInstance struct {
150150 nsn types.NamespacedName
151151 port uint16
152152
153- listeners []net.Listener
154153 httpServers []httpServer
155154
156155 endpoints int // number of local endpoints for a service
@@ -162,7 +161,6 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
162161 var listener net.Listener
163162
164163 addresses := hcs .nodeAddresses .List ()
165- hcI .listeners = make ([]net.Listener , 0 , len (addresses ))
166164 hcI .httpServers = make ([]httpServer , 0 , len (addresses ))
167165
168166 // for each of the node addresses start listening and serving
@@ -181,16 +179,15 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
181179
182180 // start serving
183181 go func (hcI * hcInstance , listener net.Listener , httpSrv httpServer ) {
184- // Serve() will exit when the listener is closed.
182+ // Serve() will exit and return ErrServerClosed when the http server is closed.
185183 klog .V (3 ).InfoS ("Starting goroutine for healthcheck" , "service" , hcI .nsn , "address" , listener .Addr ())
186- if err := httpSrv .Serve (listener ); err != nil {
184+ if err := httpSrv .Serve (listener ); err != nil && err != http . ErrServerClosed {
187185 klog .ErrorS (err , "Healthcheck closed" , "service" , hcI .nsn )
188186 return
189187 }
190188 klog .V (3 ).InfoS ("Healthcheck closed" , "service" , hcI .nsn , "address" , listener .Addr ())
191189 }(hcI , listener , httpSrv )
192190
193- hcI .listeners = append (hcI .listeners , listener )
194191 hcI .httpServers = append (hcI .httpServers , httpSrv )
195192 }
196193
@@ -199,9 +196,9 @@ func (hcI *hcInstance) listenAndServeAll(hcs *server) error {
199196
200197func (hcI * hcInstance ) closeAll () error {
201198 errors := []error {}
202- for _ , listener := range hcI .listeners {
203- if err := listener .Close (); err != nil {
204- klog .ErrorS (err , "Error closing listener for health check service" , "service" , hcI .nsn , "address" , listener . Addr () )
199+ for _ , server := range hcI .httpServers {
200+ if err := server .Close (); err != nil {
201+ klog .ErrorS (err , "Error closing server for health check service" , "service" , hcI .nsn )
205202 errors = append (errors , err )
206203 }
207204 }
0 commit comments