You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
From my understanding here are the steps that download does:
defines a destination (return if already exists)
download and extract in a temporary directory
rename the temporary directory to the final destionation
Now imagine a concurrent install is running, if after the step 1. another installation succedeed the rename (step 3.) will fail (however, only under Linux because of different syscalls).
🤔 Expected Behavior
Work
👟 Steps to reproduce
Use download with the same package concurrently (in multiple cargo test for example).
🌍 Your environment
Include the relevant details of your environment.
binary-install version: master
rustc version: 1.36.0-nightly
OS: Linux
The text was updated successfully, but these errors were encountered:
xtuc
added a commit
to xtuc/binary-install
that referenced
this issue
May 30, 2019
Download does the following steps:
1. defines a destination (return if already exists)
2. download and extract in a temporary directory
3. rename the temporary directory to the final destionation
Now imagine a concurrent install is running, if after the step 1. another
installation succedeed the rename (step 3.) will fail
(however, only under Linux because of different syscalls).
This change allows to acquire a lock before step 1 and release it
after step 3. Concurrent access will wait.
Fixesrustwasm#2
🐛 Bug description
From my understanding here are the steps that
download
does:Now imagine a concurrent install is running, if after the step 1. another installation succedeed the rename (step 3.) will fail (however, only under Linux because of different syscalls).
🤔 Expected Behavior
Work
👟 Steps to reproduce
Use
download
with the same package concurrently (in multiple cargo test for example).🌍 Your environment
Include the relevant details of your environment.
binary-install version: master
rustc version: 1.36.0-nightly
OS: Linux
The text was updated successfully, but these errors were encountered: