mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-28 12:31:04 +00:00
runtime-rs: fix the issue of delete cgroup failed
When try to delete a cgroup, it's needed to move all of the tasks/procs in the cgroup into root cgroup and then delete it. Since for cgroup v2, it doesn't support to move thread into root cgroup, thus move the processes instead of moving tasks can fix this issue. Signed-off-by: Fupan Li <fupan.lfp@antgroup.com>
This commit is contained in:
parent
9356ed59d5
commit
15cbc545ca
@ -123,11 +123,11 @@ impl CgroupsResource {
|
||||
/// delete will move the running processes in the cgroup_manager and
|
||||
/// overhead_cgroup_manager to the parent and then delete the cgroups.
|
||||
pub async fn delete(&self) -> Result<()> {
|
||||
for cg_pid in self.cgroup_manager.tasks() {
|
||||
// For now, we can't guarantee that the thread in cgroup_manager does still
|
||||
// exist. Once it exit, we should ignore that error returned by remove_task
|
||||
for cg_pid in self.cgroup_manager.procs() {
|
||||
// For now, we can't guarantee that the process in cgroup_manager does still
|
||||
// exist. Once it exit, we should ignore that error returned by remove_task_by_tgid
|
||||
// to let it go.
|
||||
if let Err(error) = self.cgroup_manager.remove_task(cg_pid) {
|
||||
if let Err(error) = self.cgroup_manager.remove_task_by_tgid(cg_pid) {
|
||||
match error.source() {
|
||||
Some(err) => match err.downcast_ref::<io::Error>() {
|
||||
Some(e) => {
|
||||
|
Loading…
Reference in New Issue
Block a user