-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Squirrel installers race for SquirrelTemp resulting in bad installations #1853
Comments
While this is still a bug, MS Teams uses a forked, private copy of Squirrel that has several known bugs (some of which were self-inflicted) and we can do nothing to fix them |
Interesting. Would the proposed silos at least shield the community from Teams and other apps using outdated Squirrel code? Or is this a set of unrelated issues? |
A quick review of the code that I wrote ~9 years ago seems to indicate that this is not super easy because of how early in the process we are, though the "randomly generated" strategy might work. I'm.....not sure why I didn't do that in the first place actually! Probably because I was trying to make the C++ section of this code As Small As Possible The other places we use SquirrelTemp during the update process, we actually already use the "generate a unique empty subdirectory" strategy |
@robmen ^^ a Good Idea, this should fix some of the issues that people have around machine-wide installers stepping on each other |
Yeah. I'm finally getting to the end of my WiX v4 saga and should finally have some mental energy for Squirrel. |
Hello, |
@gwenchailleu I would submit a PR with the solution documented above so we can get the ball rolling here. This is a critical bug and am quite surprised this still hasn't been resolved. |
Hello, this is good news ! |
I am interested in a PR. I believe our users are encountering this when double launching the installer on accident. One installer will delete the temp folder out from other the other as corrupt. This is the error I consistently get when double launching the installer... Then Open Setup Log opens a path that doesn't exist. but when I look in the SquirrelTemp folder I have Squirrel-Install.log and Squirrel-Install.1.log, that seem to indicate they're both trying to manipulate the contents of the SquirrelTemp and the AppData{appName} folder. Both installers fail when launched in rapid succession like this. |
Squirrel version(s)
squirrel.windows.2.0.1 and possibly others
Description
Squirrel uses
%localappdata%\SquirrelTemp
for various servicing tasks. Squirrel seems to allow simultanous installations to occur yet does not silo the temporary folder on a per-app basis. This appears to result in races for files in the temporary folder and can result in incorrect installations of various applications, wrong shortcuts, incorrect schema launches, etc. These installations are very difficult to repair and detremential to the user experience.I believe this meets the bug bar for resolution under the Focus on the User Experience principle (#1470 (comment)) and the product's tag line Squirrel: It's like ClickOnce but Works™.
Steps to recreate
I highly recommend the use of a virtual machine or Windows Sandbox.
scenario.zip
scenario.cmd
and wait until completionms-settings:installed-apps
or navigate to Settings > Apps > Installed Appsmyapp
to begin a search.Screenshots
Expected behavior
It should not be possible for Squirrel apps to read from or write over each other
Actual behavior
Squirrel apps compete for the temporary folder and behave indeterminately
Proposal
Use a product-specific (or randomly generated) path to silo apps from each other.
The text was updated successfully, but these errors were encountered: