https://bugs.winehq.org/show_bug.cgi?id=54071
Bug ID: 54071 Summary: winzip 27 installer crashes Product: Wine Version: 7.22 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: temp82@luukku.com Distribution: ---
Created attachment 73620 --> https://bugs.winehq.org/attachment.cgi?id=73620 crash log
a0ef3ee4cee282b45d9f97690b6b8e9444d719a6 winzip27.exe
https://bugs.winehq.org/show_bug.cgi?id=54071
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Ever confirmed|0 |1 Status|UNCONFIRMED |NEW URL| |https://download.winzip.com | |/gl/nkln/winzip27.exe CC| |dark.shadow4@web.de Keywords| |download
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- Archived at https://web.archive.org/web/20221205002305/https://download.winzip.com/gl/nk...
Seems to be a regression between 3.21 and 4.0-rc1. Bisected to commit 5cc5b102c1b0a66aa63b66f43f2da9a1a9d15ab6 Author: Jacek Caban jacek@codeweavers.com Date: Thu Dec 6 18:09:18 2018 +0100
secur32: Use -VERS-ALL gnutls priority string to disable not enabled protocols.
I'm hesitant to classify this as a regression though, since we get a lot of "GnuTLS error: A TLS fatal alert has been received." when it's working. Probably just an "unhide" bug.
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #2 from Fabian Maurer dark.shadow4@web.de --- Created attachment 73623 --> https://bugs.winehq.org/attachment.cgi?id=73623 Hack to revert to the old behavior
https://bugs.winehq.org/show_bug.cgi?id=54071
Alex Henrie alexhenrie24@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |alexhenrie24@gmail.com Regression SHA1| |5cc5b102c1b0a66aa63b66f43f2 | |da9a1a9d15ab6 Keywords| |regression
--- Comment #3 from Alex Henrie alexhenrie24@gmail.com --- (In reply to Fabian Maurer from comment #1)
I'm hesitant to classify this as a regression though, since we get a lot of "GnuTLS error: A TLS fatal alert has been received." when it's working. Probably just an "unhide" bug.
All regressions are caused when fixing one thing accidentally or intentionally breaks another. For example, simply adding a new stub DLL to Wine can cause regressions when applications that don't load the DLL when it is not available see the DLL and try to use it. Therefore, I am marking this bug as a regression.
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #4 from temp82@luukku.com --- I wasn't expecting this to work yet but I still tried with wine 8.4 and it still crashes.
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #5 from Alex Henrie alexhenrie24@gmail.com --- Using native jscript, mshtml, and urlmon is sufficient for the installer to start (although it fails partway through). `winetricks ie8` installs all three.
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #6 from Alex Henrie alexhenrie24@gmail.com --- The installer appears to be crashing in nsIBaseWindow_Create, although I don't understand why that function would be problematic.
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #7 from Fabian Maurer dark.shadow4@web.de --- (In reply to Alex Henrie from comment #6)
The installer appears to be crashing in nsIBaseWindow_Create, although I don't understand why that function would be problematic.
How did you figure that out?
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #8 from Alex Henrie alexhenrie24@gmail.com --- (In reply to Fabian Maurer from comment #7)
(In reply to Alex Henrie from comment #6)
The installer appears to be crashing in nsIBaseWindow_Create, although I don't understand why that function would be problematic.
How did you figure that out?
I printed FIXMEs before and after various mshtml function calls until I narrowed the crash point down to that one function.
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #9 from Alex Henrie alexhenrie24@gmail.com --- Created attachment 74474 --> https://bugs.winehq.org/attachment.cgi?id=74474 Test program that creates two HTMLDocument objects in separate threads
I suspect that the problem has to do with creating two web browser controls in two different threads. It looks like Wine's mshtml tries to be thread-safe, but I'm not sure that that's actually possible with Wine's version of Gecko.
I'm attaching a simple test program that creates two HTMLDocument objects in separate threads. It works perfectly fine on Windows, but it crashes on Wine in the same way as the WinZip installer.
https://bugs.winehq.org/show_bug.cgi?id=54071
Gabriel Ivăncescu gabrielopcode@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |gabrielopcode@gmail.com Resolution|--- |DUPLICATE
--- Comment #10 from Gabriel Ivăncescu gabrielopcode@gmail.com --- Unfortunately, mshtml code being thread-safe does not help because it's a known long-standing issue with Gecko, where it can't be used from multiple threads.
*** This bug has been marked as a duplicate of bug 37906 ***
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #11 from Alex Henrie alexhenrie24@gmail.com --- Interesting, thanks for pointing me to that bug report. However, I'm not sure that this bug is really a duplicate of that one, because the WinZip installer does work if Wine simply returns an error instead of crashing when trying to use Gecko from a second thread. I've sent a patch: https://gitlab.winehq.org/wine/wine/-/merge_requests/2834
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #12 from Gabriel Ivăncescu gabrielopcode@gmail.com --- It likely works by luck because it uses the other thread for some non-essential, but it's still a bug and should be tracked along with 37906.
Don't get me wrong, this doesn't mean the patch isn't fine, as a temporary workaround (like stubs are). But it doesn't fix the actual bug so we can't mark this one fixed by using a stub or workaround.
We'll have to wait for Jacek's opinion about your patch though.
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #13 from Alex Henrie alexhenrie24@gmail.com --- When a function is missing from Wine, often two bug reports are created: One about the crash, and one about the missing functionality. The first bug is resolved by adding a stub (which allows the rest of the program to function). The second bug is resolved by giving the function a proper implementation (which makes that particular part of the program work).
In my view, we have a similar situation here where this bug report is about "stubbing" the feature, and Bug 37906 is about implementing it. But how we track the bugs in Bugzilla doesn't really matter; what's important is getting the required changes accepted into Wine.
https://bugs.winehq.org/show_bug.cgi?id=54071
--- Comment #14 from Gabriel Ivăncescu gabrielopcode@gmail.com --- Yeah, but in this case, the patch would change behavior in all the apps affected by the original bug (37906), and the behavior would depend on the app and how it handles failure. So I wasn't sure how to proceed with it here, at least now it should be easier to pinpoint since they're linked.
https://bugs.winehq.org/show_bug.cgi?id=54071
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #15 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Closing duplicate.