Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Venv "can't open file file" named cache flake #14618

Closed
Eric-Arellano opened this issue Feb 25, 2022 · 1 comment · Fixed by #16931
Closed

Venv "can't open file file" named cache flake #14618

Eric-Arellano opened this issue Feb 25, 2022 · 1 comment · Fixed by #16931
Assignees
Labels
backend: Python Python backend-related issues bug

Comments

@Eric-Arellano
Copy link
Contributor

Seen in CI on 2.11:

03:44:10.89 [ERROR] Completed: Lint with autoflake - autoflake failed (exit code 2).
/home/runner/.cache/pants/named_caches/pex_root/venvs/s/e4a8d8cc/venv/bin/python3.7: can't open file '/home/runner/.cache/pants/named_caches/pex_root/venvs/76dfc7bf5b19524ee737148e3049712704fec4e9/2703f860957c2efe7f4d087e27e538da0891bc96/pex': [Errno 2] No such file or directory

https://github.com/pantsbuild/pants/runs/5328703987?check_suite_focus=true#step:10:271

See https://pantsbuild.slack.com/archives/C0D7TNJHL/p1645761742140559 for discussion.

@thejcannon thejcannon added the backend: Python Python backend-related issues label Jun 7, 2022
@jsirois
Copy link
Contributor

jsirois commented Sep 20, 2022

This is almost certainly #16778

@jsirois jsirois self-assigned this Sep 20, 2022
jsirois added a commit that referenced this issue Sep 20, 2022
There was a race in venv re-population due to a non-atomic `rm`, create
sequence. There was no real need for the `rm` and the create is atomic 
on its own; so just remove the `rm` which was only attempting to guard
"corrupted" venvs in a slapdash way. Now the venv either exists or it
doesn't from the script point of view. If the venv exists but has been
tampered with, its execution will consistently fail until there is a
manual intervention removing the venv dir offline.

Fixes #14618
Fixes #16778
jsirois added a commit to jsirois/pants that referenced this issue Sep 20, 2022
There was a race in venv re-population due to a non-atomic `rm`, create
sequence. There was no real need for the `rm` and the create is atomic
on its own; so just remove the `rm` which was only attempting to guard
"corrupted" venvs in a slapdash way. Now the venv either exists or it
doesn't from the script point of view. If the venv exists but has been
tampered with, its execution will consistently fail until there is a
manual intervention removing the venv dir offline.

Fixes pantsbuild#14618
Fixes pantsbuild#16778

(cherry picked from commit cace851)
jsirois added a commit to jsirois/pants that referenced this issue Sep 20, 2022
There was a race in venv re-population due to a non-atomic `rm`, create
sequence. There was no real need for the `rm` and the create is atomic
on its own; so just remove the `rm` which was only attempting to guard
"corrupted" venvs in a slapdash way. Now the venv either exists or it
doesn't from the script point of view. If the venv exists but has been
tampered with, its execution will consistently fail until there is a
manual intervention removing the venv dir offline.

Fixes pantsbuild#14618
Fixes pantsbuild#16778

(cherry picked from commit cace851)
jsirois added a commit that referenced this issue Sep 21, 2022
There was a race in venv re-population due to a non-atomic `rm`, create
sequence. There was no real need for the `rm` and the create is atomic
on its own; so just remove the `rm` which was only attempting to guard
"corrupted" venvs in a slapdash way. Now the venv either exists or it
doesn't from the script point of view. If the venv exists but has been
tampered with, its execution will consistently fail until there is a
manual intervention removing the venv dir offline.

Fixes #14618
Fixes #16778

(cherry picked from commit cace851)
jsirois added a commit that referenced this issue Sep 21, 2022
There was a race in venv re-population due to a non-atomic `rm`, create
sequence. There was no real need for the `rm` and the create is atomic
on its own; so just remove the `rm` which was only attempting to guard
"corrupted" venvs in a slapdash way. Now the venv either exists or it
doesn't from the script point of view. If the venv exists but has been
tampered with, its execution will consistently fail until there is a
manual intervention removing the venv dir offline.

Fixes #14618
Fixes #16778

(cherry picked from commit cace851)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend: Python Python backend-related issues bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants