diff options
Diffstat (limited to 'pkg/shim/v2/epoll.go')
-rw-r--r-- | pkg/shim/v2/epoll.go | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/pkg/shim/v2/epoll.go b/pkg/shim/v2/epoll.go index 45cc38c2a..41232cca8 100644 --- a/pkg/shim/v2/epoll.go +++ b/pkg/shim/v2/epoll.go @@ -23,7 +23,6 @@ import ( "sync" "github.com/containerd/cgroups" - eventstypes "github.com/containerd/containerd/api/events" "github.com/containerd/containerd/events" "github.com/containerd/containerd/runtime" "golang.org/x/sys/unix" @@ -68,10 +67,11 @@ func (e *epoller) run(ctx context.Context) { default: n, err := unix.EpollWait(e.fd, events[:], -1) if err != nil { - if err == unix.EINTR { + if err == unix.EINTR || err == unix.EAGAIN { continue } - fmt.Errorf("cgroups: epoll wait: %w", err) + // Should not happen. + panic(fmt.Errorf("cgroups: epoll wait: %w", err)) } for i := 0; i < n; i++ { e.process(ctx, uintptr(events[i].Fd)) @@ -114,10 +114,11 @@ func (e *epoller) process(ctx context.Context, fd uintptr) { unix.Close(int(fd)) return } - if err := e.publisher.Publish(ctx, runtime.TaskOOMEventTopic, &eventstypes.TaskOOM{ + if err := e.publisher.Publish(ctx, runtime.TaskOOMEventTopic, &TaskOOM{ ContainerID: i.id, }); err != nil { - fmt.Errorf("publish OOM event: %w", err) + // Should not happen. + panic(fmt.Errorf("publish OOM event: %w", err)) } } |