summaryrefslogtreecommitdiffhomepage
path: root/pkg/shim/v2/epoll.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/shim/v2/epoll.go')
-rw-r--r--pkg/shim/v2/epoll.go11
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))
}
}