The code used to decide which processes to reclassify into cgroups only looks at top-level processes (/proc/[0-9]*) rather than all tasks (/proc/[0-9]*/tasks/*). On a related note, the check in oo-accept-node is similarly incorrect.
That should have been /proc/[0-9]*/task/* (not "tasks")
Pull request: https://github.com/openshift/origin-server/pull/3910 Here's how to verify for Q/E... 1. Create a non-scaled jbosseap app and note the gear uuid - both spawn a ton of threads 2. Find out how many threads are in the gear cgroup, should be over 60. wc -l /cgroup/all/openshift/[UUID]/tasks 3. Move the tasks to the root cgroup cat /cgroup/all/openshift/[UUID]/tasks | while read t; echo $t > /cgroup/all/tasks; done 4. This should now be 0, no threads in the gear cgroup wc -l /cgroup/all/openshift/[UUID]/tasks 5. Repair the cgroup oo-cgroup-reclassify -c [UUID] 6. This should now be the number from #2 (or very close) wc -l /cgroup/all/openshift/[UUID]/tasks
Commit pushed to master at https://github.com/openshift/origin-server https://github.com/openshift/origin-server/commit/b65344195881663880fb52302b7060cd67ccd3e5 Bug 1020029 - needed to enumerate all threads in the task dir.
[root@ip-10-238-172-200 ~]# cat /cgroup/all/openshift/525f86d3617446e3e4000074/tasks |wc -l 61 [root@ip-10-238-172-200 ~]# cat /cgroup/all/openshift/525f86d3617446e3e4000074/tasks | while read t ;do echo $t > /cgroup/all/tasks ;done [root@ip-10-238-172-200 ~]# cat /cgroup/all/openshift/525f86d3617446e3e4000074/tasks |wc -l 0 [root@ip-10-238-172-200 ~]# oo-cgroup-reclassify -c 525f86d3617446e3e4000074 [root@ip-10-238-172-200 ~]# cat /cgroup/all/openshift/525f86d3617446e3e4000074/tasks |wc -l 64 [root@ip-10-238-172-200 ~]# Checked on devenv_3907, issue has been fixed. Move to verified.
Moving back to VERIFIED, since this wasn't actually in yesterday's release.