Skip to content

Commit 9a072b6

Browse files
Merge pull request #1013 from hqhq/fix_ps_issue
Fix runc ps issue
2 parents 124187b + b5b6989 commit 9a072b6

File tree

1 file changed

+8
-38
lines changed

1 file changed

+8
-38
lines changed

libcontainer/cgroups/fs/apply_raw.go

Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -196,17 +196,8 @@ func (m *Manager) Set(container *configs.Config) error {
196196
return nil
197197
}
198198
for _, sys := range subsystems {
199-
// Generate fake cgroup data.
200-
d, err := getCgroupData(container.Cgroups, -1)
201-
if err != nil {
202-
return err
203-
}
204-
// Get the path, but don't error out if the cgroup wasn't found.
205-
path, err := d.path(sys.Name())
206-
if err != nil && !cgroups.IsNotFound(err) {
207-
return err
208-
}
209-
199+
paths := m.GetPaths()
200+
path := paths[sys.Name()]
210201
if err := sys.Set(path, container.Cgroups); err != nil {
211202
return err
212203
}
@@ -223,14 +214,8 @@ func (m *Manager) Set(container *configs.Config) error {
223214
// Freeze toggles the container's freezer cgroup depending on the state
224215
// provided
225216
func (m *Manager) Freeze(state configs.FreezerState) error {
226-
d, err := getCgroupData(m.Cgroups, 0)
227-
if err != nil {
228-
return err
229-
}
230-
dir, err := d.path("freezer")
231-
if err != nil {
232-
return err
233-
}
217+
paths := m.GetPaths()
218+
dir := paths["freezer"]
234219
prevState := m.Cgroups.Resources.Freezer
235220
m.Cgroups.Resources.Freezer = state
236221
freezer, err := subsystems.Get("freezer")
@@ -246,28 +231,13 @@ func (m *Manager) Freeze(state configs.FreezerState) error {
246231
}
247232

248233
func (m *Manager) GetPids() ([]int, error) {
249-
dir, err := getCgroupPath(m.Cgroups)
250-
if err != nil {
251-
return nil, err
252-
}
253-
return cgroups.GetPids(dir)
234+
paths := m.GetPaths()
235+
return cgroups.GetPids(paths["devices"])
254236
}
255237

256238
func (m *Manager) GetAllPids() ([]int, error) {
257-
dir, err := getCgroupPath(m.Cgroups)
258-
if err != nil {
259-
return nil, err
260-
}
261-
return cgroups.GetAllPids(dir)
262-
}
263-
264-
func getCgroupPath(c *configs.Cgroup) (string, error) {
265-
d, err := getCgroupData(c, 0)
266-
if err != nil {
267-
return "", err
268-
}
269-
270-
return d.path("devices")
239+
paths := m.GetPaths()
240+
return cgroups.GetAllPids(paths["devices"])
271241
}
272242

273243
func getCgroupData(c *configs.Cgroup, pid int) (*cgroupData, error) {

0 commit comments

Comments
 (0)