Send exec exit event on failures
Fixes #39427 This always sends the exec exit events even when the exec fails to find the binary. A standard 127 exit status is sent in this situation. Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
parent
70f67c6240
commit
c08d4da6e5
|
@ -117,6 +117,7 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerdtypes.EventType, ei
|
||||||
return cpErr
|
return cpErr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exitCode := 127
|
||||||
if execConfig := c.ExecCommands.Get(ei.ProcessID); execConfig != nil {
|
if execConfig := c.ExecCommands.Get(ei.ProcessID); execConfig != nil {
|
||||||
ec := int(ei.ExitCode)
|
ec := int(ei.ExitCode)
|
||||||
execConfig.Lock()
|
execConfig.Lock()
|
||||||
|
@ -131,18 +132,14 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerdtypes.EventType, ei
|
||||||
// remove the exec command from the container's store only and not the
|
// remove the exec command from the container's store only and not the
|
||||||
// daemon's store so that the exec command can be inspected.
|
// daemon's store so that the exec command can be inspected.
|
||||||
c.ExecCommands.Delete(execConfig.ID, execConfig.Pid)
|
c.ExecCommands.Delete(execConfig.ID, execConfig.Pid)
|
||||||
attributes := map[string]string{
|
|
||||||
"execID": execConfig.ID,
|
exitCode = ec
|
||||||
"exitCode": strconv.Itoa(ec),
|
|
||||||
}
|
|
||||||
daemon.LogContainerEventWithAttributes(c, "exec_die", attributes)
|
|
||||||
} else {
|
|
||||||
logrus.WithFields(logrus.Fields{
|
|
||||||
"container": c.ID,
|
|
||||||
"exec-id": ei.ProcessID,
|
|
||||||
"exec-pid": ei.Pid,
|
|
||||||
}).Warn("Ignoring Exit Event, no such exec command found")
|
|
||||||
}
|
}
|
||||||
|
attributes := map[string]string{
|
||||||
|
"execID": ei.ProcessID,
|
||||||
|
"exitCode": strconv.Itoa(exitCode),
|
||||||
|
}
|
||||||
|
daemon.LogContainerEventWithAttributes(c, "exec_die", attributes)
|
||||||
case libcontainerdtypes.EventStart:
|
case libcontainerdtypes.EventStart:
|
||||||
c.Lock()
|
c.Lock()
|
||||||
defer c.Unlock()
|
defer c.Unlock()
|
||||||
|
|
Loading…
Reference in New Issue