gerwaric / acquisition

Stash and forum shop management for Path of Exile
GNU General Public License v3.0
18 stars 3 forks source link

Sudden random crashes (due to incompatible MSVCP140.DLL in the program folder) #49

Open gerwaric opened 4 months ago

gerwaric commented 4 months ago

PROBLEM: Acquisition is crashing randomly for a number of users. This happens at startup or shortly thereafter.

CAUSE: The common issue seems to be that these users have .DLL files from an incompatible version of the Microsoft Visual C++ Runtime such as msvcp140.dll, msvcp140_1.dll, and msvcp140_2.dll copied into Acquisition's program folder. Acquisition is compiled with the most recent C++ runtime, but those files are from a slightly older, incompatible version. These files are not removed during the installation process, so installing a new version of Acquisition will leave behind these older files if they exist.

(I'm not sure how these files ended up in Acquisition's program folder, but if it were me, I can imagine copying them manually at some point due to an error like "Missing MSVCP140.dll" --@gerwaric)

SOLUTION: This problem will persist until the deletes those files from Acquisition's program folder and installs the necessary Visual C++ runtime. To make this easiear, the installer for acquisition now offers to install the MSVC runtime.

SPECIFICS: The crash is happening within the code for std::mutex as described here: https://developercommunity.visualstudio.com/t/Access-violation-in-_Thrd_yield-after-up/10664660

POSSIBLE WORKAROUNDS:

Currently Acquisition tries to detect the presence of these incompatible DLLs and warn the user, but this may not be the best solution, either.

gerwaric commented 3 months ago

Fixed with https://github.com/gerwaric/acquisition/releases/tag/v0.11.1.1

gerwaric commented 3 months ago

I'm still seeing a fair number of these crashes on Bugsplat, so I'm reopening this issue so that people will see it if they come here.