-
Notifications
You must be signed in to change notification settings - Fork 20
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
[Errno 13] Permission denied
on Windows
#151
Comments
I don't have a Windows install to test on myself, but I dug into this a bit based on some hunches. I believe the issue here is the locking introduced in 821c08e. Specifically, Window's
and I believe that's what's happening since we acquire the lock on the same file we then re-open for writing. This works on Unix because the lock isn't mandatory (OS enforced) unlike Window's LockFileEx. This is noted in fastener's readme, but I didn't realize the full implications of this difference when introducing the locking. (My thinking was enforcement was process-scoped not fd/handle-scoped.) If the above is indeed the issue, then I see a couple potential solutions:
Both seem doable, but 1 seems better to me. |
avoids having to reason about the parent path existence checks which is a) hard and b) creates small race conditions. the price of this simpler implementation is that accesses to different files will be bottlenecked on the same lock, but that's just fine for our expected usage. Resolves #151.
@victorlin Can you test if the branch |
@tsibley yes, that branch works! |
Limited to some very basic "does it at least run?" checks. We can expand this to exercise some more commands, but the major limitation currently is the lack of a working "native" runtime for Windows and the lack of Docker with Linux container support (either via WSL 2 or Hyper-V) on the CI machines. Options exist for overcoming these limitations¹, but they'd require a bit more work still. Without a local runtime, we can't test build zika-tutorial. Still, I think even these basic checks will help catch some issues², especially since no one on the team is routinely using Windows in daily work. ¹ #14 (comment) ² like #151
Limited to some very basic "does it at least run?" checks. We can expand this to exercise some more commands, but the major limitation currently is the lack of a working "native" runtime for Windows and the lack of Docker with Linux container support (either via WSL 2 or Hyper-V) on the CI machines. Options exist for overcoming these limitations¹, but they'd require a bit more work still. Without a local runtime, we can't test build zika-tutorial. Still, I think even these basic checks will help catch some issues², especially since no one on the team is routinely using Windows in daily work. ¹ #14 (comment) ² like #151
Limited to some very basic "does it at least run?" checks. We can expand this to exercise some more commands, but the major limitation currently is the lack of a working "native" runtime for Windows and the lack of Docker with Linux container support (either via WSL 2 or Hyper-V) on the CI machines. Options exist for overcoming these limitations¹, but they'd require a bit more work still. Without a local runtime, we can't test build zika-tutorial. Still, I think even these basic checks will help catch some issues², especially since no one on the team is routinely using Windows in daily work. ¹ #14 (comment) ² like #151
Limited to some very basic "does it at least run?" checks. We can expand this to exercise some more commands, but the major limitation currently is the lack of a working "native" runtime for Windows and the lack of Docker with Linux container support (either via WSL 2 or Hyper-V) on the CI machines. Options exist for overcoming these limitations¹, but they'd require a bit more work still. Without a local runtime, we can't test build zika-tutorial. Still, I think even these basic checks will help catch some issues², especially since no one on the team is routinely using Windows in daily work. ¹ #14 (comment) ² like #151
from discussion post
Current Behavior
The error happens with at least the following 3 commands:
nextstrain update
nextstrain check-setup --set-default
with docker, aws-batch supportednextstrain check-setup --set-default
with aws-batch supportedExpected behavior
Normal behavior.
How to reproduce
Steps to reproduce the current behavior:
Possible solution
(optional)
Your environment: if running Nextstrain locally
Additional context
I checked on 3.0.3, 3.0.4, 3.0.5, and 3.0.6. The last working version was 3.0.3. So the bug was introduced somewhere here: 3.0.3...3.0.4
Workaround: use WSL on Windows to install Nextstrain.
The text was updated successfully, but these errors were encountered: