Merge pull request #5195 from fuweid/fix-5173

runtime/v2/runc: fix leaking socket path
This commit is contained in:
Phil Estes
2021-03-17 09:33:41 -04:00
committed by GitHub
3 changed files with 34 additions and 16 deletions

View File

@@ -239,6 +239,13 @@ func run(id string, initFunc Init, config Config) error {
return err
}
}
// NOTE: If the shim server is down(like oom killer), the address
// socket might be leaking.
if address, err := ReadAddress("address"); err == nil {
_ = RemoveSocket(address)
}
select {
case <-publisher.Done():
return nil
@@ -299,15 +306,11 @@ func serve(ctx context.Context, server *ttrpc.Server, path string) error {
return err
}
go func() {
defer l.Close()
if err := server.Serve(ctx, l); err != nil &&
!strings.Contains(err.Error(), "use of closed network connection") {
logrus.WithError(err).Fatal("containerd-shim: ttrpc server failure")
}
l.Close()
if address, err := ReadAddress("address"); err == nil {
_ = RemoveSocket(address)
}
}()
return nil
}