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

vcredist: use unique file names for 32-bit and 64-bit installers #9

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

jberezanski
Copy link

On a clean Windows 8.1 x64 virtual machine, running on rather old hardware
and with quite limited resources (i.e. slow), I have observed the
following behavior while installing vcredist2013(*):

  1. Chocolatey downloads and installs the 64-bit version successfully
  2. Chocolatey proceeds to download the installer for the 32-bit version,
    using the same local file name as for the 64-bit version
    (vcredist2013Install.exe).
  3. The download fails, because the destination file is used by
    another process.

I believe this happens because, due to the slowness of the machine,
although the 64-bit vcredist installation has finished from Chocolatey
point of view, a system component (the Windows Installer service?) is
still holding the installer file open for a brief amount of time. This is
definitely a timing-related issue, because I have not been able to
reproduce it on an identical VM running on better hardware with more
resources.

Since the local installer file name is determined by the packageName
argument to Install-ChocolateyPackage, let's avoid the problem by using a
different name for the 32-bit installer on 64-bit OS.

(*) Although I personally encountered the issue while installing the 2013
redist, it could happen for all other redists, too.

On a clean Windows 8.1 x64 virtual machine, running on rather old hardware
and with quite limited resources (i.e. slow), I have observed the
following behavior while installing vcredist2013*:
1) Chocolatey downloads and installs the 64-bit version successfully
2) Chocolatey proceeds to download the installer for the 32-bit version,
   using the same local file name as for the 64-bit version
   (vcredist2013Install.exe).
3) The download fails, because the destination file is used by
   another process.

I believe this happens because, due to the slowness of the machine,
although the 64-bit vcredist installation has finished from Chocolatey
point of view, a system component (the Windows Installer service?) is
still holding the installer file open for a brief amount of time. This is
definitely a timing-related issue, because I have not been able to
reproduce it on an identical VM running on better hardware with more
resources.

Since the local installer file name is determined by the packageName
argument to Install-ChocolateyPackage, let's avoid the problem by using a
different name for the 32-bit installer on 64-bit OS.

* Although I personally encountered the issue while installing the 2013
redist, it could happen for all other redists, too.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant