Ver código fonte

Merge pull request #44892 from corhere/backport-23.0/fix-kata-exec-exit

[23.0 backport] Fix exit-event handling for Kata runtime
Bjorn Neergaard 2 anos atrás
pai
commit
bacf32d9ab
2 arquivos alterados com 5 adições e 2 exclusões
  1. 1 1
      daemon/monitor.go
  2. 4 1
      libcontainerd/remote/client.go

+ 1 - 1
daemon/monitor.go

@@ -148,7 +148,7 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerdtypes.EventType, ei
 
 		daemon.LogContainerEvent(c, "oom")
 	case libcontainerdtypes.EventExit:
-		if int(ei.Pid) == c.Pid {
+		if ei.ProcessID == libcontainerdtypes.InitProcessName {
 			return daemon.handleContainerExit(c, &ei)
 		}
 

+ 4 - 1
libcontainerd/remote/client.go

@@ -674,7 +674,7 @@ func (c *client) processEvent(ctx context.Context, et libcontainerdtypes.EventTy
 			}).Error("failed to process event")
 		}
 
-		if et == libcontainerdtypes.EventExit && ei.ProcessID != ei.ContainerID {
+		if et == libcontainerdtypes.EventExit && ei.ProcessID != libcontainerdtypes.InitProcessName {
 			p, err := c.getProcess(ctx, ei.ContainerID, ei.ProcessID)
 			if err != nil {
 
@@ -823,6 +823,9 @@ func (c *client) processEventStream(ctx context.Context, ns string) {
 					ExitCode:    t.ExitStatus,
 					ExitedAt:    t.ExitedAt,
 				}
+				if t.ID == t.ContainerID {
+					ei.ProcessID = libcontainerdtypes.InitProcessName
+				}
 			case *apievents.TaskOOM:
 				et = libcontainerdtypes.EventOOM
 				ei = libcontainerdtypes.EventInfo{