gh-74585: Fix race condition in shutil.copyfile#136836
gh-74585: Fix race condition in shutil.copyfile#136836abadger wants to merge 3 commits intopython:mainfrom
Conversation
4ffeed3 to
f6144ef
Compare
|
For the WASI CI failures, it seems that WASI is setting |
d361a00 to
970fce1
Compare
970fce1 to
8ef96f8
Compare
|
@giampaolo I believe your question about |
|
This PR is stale because it has been open for 30 days with no activity. |
This PR fixes a race condition in
shutil.copyfile(there are several othershutilfunctions that should also be fixed. The current state is that onlycopyfileis fixed.) Unittests are passing but there are a few things that I'd like to look into:Reading through the issue, the following questions were asked and should be looked into:
copyfilechanges for operations that are duplicated/should be done inside of the openers. For instance, this PR presently stats a file twice. I think that's unnecessary.intand then return an instance of the subclass fromdst_openerwith adst_was_createdattribute set. I don't think this makes the code any cleaner than it is now. If there's some other reason anonlocalvariable won't work in later revisions of the code, this is a strategy that can be explored.open()is needed instead of simply implementing an opener forsrcanddst. With that being the case, we can probably movedst_was_createdinto there.shutilfunctions: giampaulo:All copy* functions and move() are subjects to race conditions (the only exception is rmtree()).copyfileis good in and of itself, regardless of whether we fix the rest of theshutilfunctions. I'll take a look at how similar they are before commenting on this.This is a forward-port of #1659 from @pkmoore