Merge "libprocessgroup: Handle temporarily non-empty group removal failure"
This commit is contained in:
commit
6cd136fc61
1 changed files with 3 additions and 6 deletions
|
|
@ -187,10 +187,6 @@ static int RemoveProcessGroup(const char* cgroup, uid_t uid, int pid, unsigned i
|
|||
auto uid_pid_path = ConvertUidPidToPath(cgroup, uid, pid);
|
||||
auto uid_path = ConvertUidToPath(cgroup, uid);
|
||||
|
||||
if (retries == 0) {
|
||||
retries = 1;
|
||||
}
|
||||
|
||||
while (retries--) {
|
||||
ret = rmdir(uid_pid_path.c_str());
|
||||
if (!ret || errno != EBUSY) break;
|
||||
|
|
@ -463,12 +459,13 @@ static int KillProcessGroup(uid_t uid, int initialPid, int signal, int retries,
|
|||
<< " in " << static_cast<int>(ms) << "ms";
|
||||
}
|
||||
|
||||
int err = RemoveProcessGroup(cgroup, uid, initialPid, retries);
|
||||
// 400 retries correspond to 2 secs max timeout
|
||||
int err = RemoveProcessGroup(cgroup, uid, initialPid, 400);
|
||||
|
||||
if (isMemoryCgroupSupported() && UsePerAppMemcg()) {
|
||||
std::string memcg_apps_path;
|
||||
if (CgroupGetMemcgAppsPath(&memcg_apps_path) &&
|
||||
RemoveProcessGroup(memcg_apps_path.c_str(), uid, initialPid, retries) < 0) {
|
||||
RemoveProcessGroup(memcg_apps_path.c_str(), uid, initialPid, 400) < 0) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue