opencontainers / opencontainers/runc

TestPodSkipDevicesUpdate: open cpuset.cpus: ENOENT

Open
#3,351 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
13.5k
Forks
2.3k
Avg merge
2d 8h
Merged PRs (30d)
30

Description

Saw this failure on Cirrus CI, running under centos-stream-8 (from https://github.com/opencontainers/runc/pull/3350/checks?check_run_id=4959472971)

=== RUN   TestPodSkipDevicesUpdate
    systemd_test.go:104: open /sys/fs/cgroup/cpuset/system.slice/system-runc_test_podTestPodSkipDevicesUpdate.slice/cpuset.cpus: no such file or directory
--- FAIL: TestPodSkipDevicesUpdate (0.07s)

I have not seen it before.

This must be some kernel race -- the code in question creates the directory and then reads its cpuset.cpus.

I am not sure what to do here, other than to retry on ENOENT.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in systemd_test.go at TestPodSkipDevicesUpdate and trace the cgroup directory creation followed by the cpuset.cpus read. Reproduce the CentOS Stream 8 failure and determine how the ENOENT case should be handled; done means the test no longer fails spuriously and the behavior is covered by the relevant test.

Written by the indexing model from the issue text.

Assessment

Tech stack
centos, go, linux
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.