https://bugs.winehq.org/show_bug.cgi?id=28290
Bernhard Übelacker bernhardu@mailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bernhardu@mailbox.org
--- Comment #3 from Bernhard Übelacker bernhardu@mailbox.org --- I tried to take a deeper look and it looks like the IPersistFile_fnSave is failing before the crash, because of SHCreateStreamOnFileW - SHCreateStreamOnFileEx - CreateFileW is returning STATUS_SHARING_VIOLATION/ERROR_SHARING_VIOLATION.
This looks like a result of several processes "winemenubuilder.exe -w" get started which take way longer than the individual tests and one of them happens to have the test.lnk file exclusively opened while the test also wants to open test.lnk again.
A sledge hammer might be to "WaitForSingleObject( pi.hProcess..." after the "CreateProcessW" in run_winemenubuilder in shelllink.c:327. At least with this the crash did not happen in a tight loop of 100 test runs, which produced in the range of 4 failures without the syncronisation.
Or maybe should SHCreateStreamOnFileEx make more attempts to open the file in the hope winemenubuilder finished later?