-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
test libuv with posix delete on windows #53394
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
Conversation
I believe most/all of the rm error logs on Windows CI remain here, but those all appear to be related to deleting temp depot |
Hm, I was hopeing that would be fixed by it. Does this also apply posix rm to directories? |
Disregard, I was unaware that we only call @vtjnash perhaps this is falling back to the old delete method? We could check by making the fallback error or print? |
You could also probably very easily fix |
0bdb41a
to
9ac2009
Compare
This seems to be working, the rm failures are gone on windows, but it has introduced inconsistent behavior on windows where these now do not error, so both fail Lines 498 to 499 in 9ac2009
@vtjnash Should I push these changes (not the failed attempt at a test) to libuv/libuv#4318 or should we separate the changes? |
This is failing again. On a windows VM with this build
on MacOS |
f46c73b
to
b1c5f1b
Compare
Note that I've moved the try-catch inside the for loop as recursive delete was failing eagerly and leaving deletable files behind. An example of an
The Why would |
I wonder if the issue is just specific to loaded dlls. In that when julia dlopens the dll it's not opened with
and this interesting discussion https://stackoverflow.com/a/63678753 Also I double checked that the posix delete mode still requires file handles to be opened with |
So I'm approaching a conclusion that:
|
Just to add notes. It does seem UV_EACCES is being thrown here https://github.com/JuliaLang/libuv/blob/7d5a80d35512b12973d7fed4f36dc9044a27e14a/src/win/fs.c#L1131
I got that in a VM. I was getting confused because on the buildkite logs the |
So that confirms that posix delete is failing with
I think that's a conclusion then. We can't rm DLLs that are currently loaded on windows, even with posix delete. But I do believe you can move them. So there could be an approach of moving them out of the directory being deleted.. (if we did that then we should move the try catch in the rm recursion to inside the loop, as it currently fails fast if it knows it can't rm the dir) It does seem like doing posix delete in libuv is still a good thing, and allows removing windows things like fyi, @vchuravy |
Testing libuv/libuv#4318
i.e. to fix #34700