From 1005dfb224c9e42003a76dfc644921a2f8114a30 Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Thu, 5 Nov 2015 16:54:45 -0800 Subject: [PATCH] Fix panic on nil container --- supervisor.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/supervisor.go b/supervisor.go index 676384d..b43ae9c 100644 --- a/supervisor.go +++ b/supervisor.go @@ -73,11 +73,11 @@ func (s *Supervisor) Start(events chan Event) error { }).Debug("containerd: process exited") if container, ok := s.processes[e.Pid]; ok { container.SetExited(e.Status) + delete(s.processes, e.Pid) + delete(s.containers, container.ID()) if err := container.Delete(); err != nil { logrus.WithField("error", err).Error("containerd: deleting container") } - delete(s.processes, e.Pid) - delete(s.containers, container.ID()) } case *StartedEvent: s.containers[e.ID] = e.Container @@ -122,6 +122,7 @@ func (s *Supervisor) worker(id int) { container, err := s.runtime.Create(j.ID, j.BundlePath) if err != nil { j.Err <- err + continue } s.SendEvent(&StartedEvent{ ID: j.ID,