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

Fix venv re-population race. #16931

Merged
merged 1 commit into from
Sep 20, 2022
Merged

Fix venv re-population race. #16931

merged 1 commit into from
Sep 20, 2022

Conversation

jsirois
Copy link
Contributor

@jsirois jsirois commented 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

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#16778
@jsirois jsirois added needs-cherrypick category:bugfix Bug fixes for released features labels Sep 20, 2022
@jsirois jsirois added this to the 2.13.x milestone Sep 20, 2022
@jsirois
Copy link
Contributor Author

jsirois commented Sep 20, 2022

I'm not sure what our policy on cherry-picks is to this day. I can go back to 2.12.2rc0 or further if folks think I should do so. This is a latent bug that stretches back to 2.3.0.

@jsirois
Copy link
Contributor Author

jsirois commented Sep 20, 2022

I'll wait for shards to finish up before re-running the @#$! PR label shard.

@jsirois jsirois requested a review from danxmoran September 20, 2022 20:12
Copy link
Contributor

@danxmoran danxmoran left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@jsirois jsirois merged commit cace851 into pantsbuild:main Sep 20, 2022
@jsirois jsirois deleted the issues/16778 branch September 20, 2022 23:16
jsirois added a commit to jsirois/pants that referenced this pull request 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 pull request 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 pull request 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 pull request 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
category:bugfix Bug fixes for released features
Projects
None yet
3 participants