Merge pull request #1501 from crosbymichael/trap-err
Trap close error on shutdown
This commit is contained in:
commit
0f6d1d21b2
@ -8,6 +8,7 @@ import (
|
||||
"net/http/pprof"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/boltdb/bolt"
|
||||
containers "github.com/containerd/containerd/api/services/containers/v1"
|
||||
@ -129,14 +130,14 @@ func (s *Server) ServeGRPC(l net.Listener) error {
|
||||
// handler. This needs to be the last service registered so that it can collect
|
||||
// metrics for every other service
|
||||
grpc_prometheus.Register(s.rpc)
|
||||
return s.rpc.Serve(l)
|
||||
return trapClosedConnErr(s.rpc.Serve(l))
|
||||
}
|
||||
|
||||
// ServeMetrics provides a prometheus endpoint for exposing metrics
|
||||
func (s *Server) ServeMetrics(l net.Listener) error {
|
||||
m := http.NewServeMux()
|
||||
m.Handle("/metrics", metrics.Handler())
|
||||
return http.Serve(l, m)
|
||||
return trapClosedConnErr(http.Serve(l, m))
|
||||
}
|
||||
|
||||
// ServeDebug provides a debug endpoint
|
||||
@ -150,12 +151,12 @@ func (s *Server) ServeDebug(l net.Listener) error {
|
||||
m.Handle("/debug/pprof/profile", http.HandlerFunc(pprof.Profile))
|
||||
m.Handle("/debug/pprof/symbol", http.HandlerFunc(pprof.Symbol))
|
||||
m.Handle("/debug/pprof/trace", http.HandlerFunc(pprof.Trace))
|
||||
return http.Serve(l, m)
|
||||
return trapClosedConnErr(http.Serve(l, m))
|
||||
}
|
||||
|
||||
// Stop gracefully stops the containerd server
|
||||
// Stop the containerd server canceling any open connections
|
||||
func (s *Server) Stop() {
|
||||
s.rpc.GracefulStop()
|
||||
s.rpc.Stop()
|
||||
}
|
||||
|
||||
func loadPlugins(config *Config) ([]*plugin.Registration, error) {
|
||||
@ -219,3 +220,13 @@ func interceptor(
|
||||
}
|
||||
return grpc_prometheus.UnaryServerInterceptor(ctx, req, info, handler)
|
||||
}
|
||||
|
||||
func trapClosedConnErr(err error) error {
|
||||
if err == nil {
|
||||
return nil
|
||||
}
|
||||
if strings.Contains(err.Error(), "use of closed network connection") {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user