mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-09-20 16:27:52 +00:00
Merge pull request #4360 from fengwang666/shim-leak
runtime: ignore ESRCH error from stop container
This commit is contained in:
@@ -1063,7 +1063,19 @@ impl BaseContainer for LinuxContainer {
|
|||||||
let st = self.oci_state()?;
|
let st = self.oci_state()?;
|
||||||
|
|
||||||
for pid in self.processes.keys() {
|
for pid in self.processes.keys() {
|
||||||
signal::kill(Pid::from_raw(*pid), Some(Signal::SIGKILL))?;
|
match signal::kill(Pid::from_raw(*pid), Some(Signal::SIGKILL)) {
|
||||||
|
Err(Errno::ESRCH) => {
|
||||||
|
info!(
|
||||||
|
self.logger,
|
||||||
|
"kill encounters ESRCH, pid: {}, container: {}",
|
||||||
|
pid,
|
||||||
|
self.id.clone()
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Err(err) => return Err(anyhow!(err)),
|
||||||
|
Ok(_) => continue,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if spec.hooks.is_some() {
|
if spec.hooks.is_some() {
|
||||||
|
@@ -78,7 +78,7 @@ func wait(ctx context.Context, s *service, c *container, execID string) (int32,
|
|||||||
shimLog.WithField("sandbox", s.sandbox.ID()).Error("failed to delete sandbox")
|
shimLog.WithField("sandbox", s.sandbox.ID()).Error("failed to delete sandbox")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if _, err = s.sandbox.StopContainer(ctx, c.id, false); err != nil {
|
if _, err = s.sandbox.StopContainer(ctx, c.id, true); err != nil {
|
||||||
shimLog.WithError(err).WithField("container", c.id).Warn("stop container failed")
|
shimLog.WithError(err).WithField("container", c.id).Warn("stop container failed")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user