Merge "libprocessgroup: Handle temporarily non-empty group removal failure" am: 6cd136fc61
Original change: https://android-review.googlesource.com/c/platform/system/core/+/2108506 Change-Id: I5fd23f113a484f4eb0d2b2b33038934b880a4dd0 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
commit
7fa8f7a530
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