[Bug 50623] New: Windows ISO Downloader 8.45 - Error messages and freeze with wine-mono
https://bugs.winehq.org/show_bug.cgi?id=50623 Bug ID: 50623 Summary: Windows ISO Downloader 8.45 - Error messages and freeze with wine-mono Product: Wine Version: 6.1 Hardware: x86-64 URL: https://web.archive.org/web/20210128040613/https://www .heidoc.net/php/Windows-ISO-Downloader.exe OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: mscoree Assignee: wine-bugs(a)winehq.org Reporter: winetaste(a)gmx.net Distribution: --- Created attachment 69317 --> https://bugs.winehq.org/attachment.cgi?id=69317 Unhandled exceptions Starting Windows ISO Downloader 8.45* I get an error message about an unhandled exception. I can continue, but selecting a Windows version (except "Windows 7 (August 2018)" and "DELL") results in another exception and the app freezes if I select the continue button. winetricks dotnet40 fixes start up exception. App needs ie8 then. Winetricks ie8 fixes this and I can select "Windows 7". Other versions like "Windows 10" just freeze without exception window. *https://www.heidoc.net/joomla/technology-science/microsoft/67-microsoft-wind... -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 Gijs Vermeulen <gijsvrm(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #1 from Esme Povirk <madewokherd(a)gmail.com> --- The first failure is because Microsoft.VisualBasic.Interaction:GetSetting doesn't work correctly when the registry keys are missing. After working around that, it tries to navigate a WebBrowser control to about:blank and then modify WebBrowser.Document, but the Document object is null. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #2 from Esme Povirk <madewokherd(a)gmail.com> --- A +ieframe log shows that ieframe is returning a Document object, but it's being rejected by the WebBrowser class. [00000024: 1.76671 2] ENTER:c System.Windows.Forms.WebBrowser:get_Document ()(this:1db40788[System.Windows.Forms.WebBrowser Windows-ISO-Downloader.exe]) 0024:trace:ieframe:WebBrowser_get_Document (001C8C78)->(0031E6D0) [00000024: 1.76685 2] LEAVE:c System.Windows.Forms.WebBrowser:get_Document ()([OBJECT:00000000] Some print statement debugging shows that it gets an object from its COM wrapper, but it fails to get an IHTMLDocument2 interface for it. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #3 from Esme Povirk <madewokherd(a)gmail.com> --- Adding +mshtml shows that Mono isn't querying for IHTMLDocument2, instead for some reason it just queries for IUnknown twice. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #4 from Esme Povirk <madewokherd(a)gmail.com> --- Best I can tell, Mono's JIT isn't IHTMLDocument2 as a COM interface when converting the cast instruction. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #5 from Esme Povirk <madewokherd(a)gmail.com> --- I'm not sure how this is supposed to work. I was assuming that conversion of the CASTCLASS instruction would hook up to cominterop stuff, but I can't find anything like that. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #6 from Esme Povirk <madewokherd(a)gmail.com> --- It looks like Mono expects COM interfaces to have the ComImport attribute, but this one has ComVisible(true) instead. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #7 from Esme Povirk <madewokherd(a)gmail.com> --- After that, the winforms code tries to call a COM method with an object[] parameter: Method (wrapper managed-to-native) int System.Windows.Forms.UnsafeNativeMethods/IHTMLDocument2:Write (intptr,object[],int&) emitted at 24eeef08 to 24eeefe0 (code length 216) [Windows-ISO-Downloader.exe] type 0x1c not handled * Assertion: should not be reached at /home/wine/wine-mono/mono/mono/metadata/marshal.c:668 The assert is in mono_array_to_lparray_impl. Method definition: int Write([In, MarshalAs(UnmanagedType.SafeArray)] object[] psarray); In theory, this should be marshaled as a safearray of string, not object. I'm also not sure why mono_array_to_lparray_impl is being called when this method expects a safearray. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #8 from Esme Povirk <madewokherd(a)gmail.com> --- Bizhawk has an example of a COM interface that only has InterfaceType(IUnknown) and a GUID attribute. This can be observed by opening the path configuration dialog and browsing for a path. MSDN says that ComVisible defaults to true. So it seems like an interface should be considered a COM interface if it (a) is public, (b) has a GUID attribute, and (c) does not have ComVisible(false). I'm not sure if (b) is even a requirement, Framework might just generate a GUID for it. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #9 from Esme Povirk <madewokherd(a)gmail.com> --- The important distinction that I missed is between RCWs and CCWs. ComVisible only applies to CCWs, not RCWs. We can still call interface methods on RCWs as long as the interface has ComImport OR the method doesn't have a MethodImplAttribute with MethodCodeType=MethodCodeType.Runtime. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #10 from Esme Povirk <madewokherd(a)gmail.com> --- Whoops, comments 8 and 9 weren't actually relevant to this bug because I'd added a work-around to winforms but didn't note that here. I think the current state is that we need to fix UnmanagedType.SafeArray for native wrapper input parameters, at least for object arrays. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #11 from Esme Povirk <madewokherd(a)gmail.com> --- I did some separate work on safearray marshaling and found that SafeArraySubType needs to be set to a specific VT, and the default is to infer it based on the parameter type. So this might fix it: https://github.com/madewokherd/mono/commit/96853ceae1fe3ec7ec1932f840e649e30... Not yet pushed to the develop branch because I'm waiting on CI and review. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #12 from Esme Povirk <madewokherd(a)gmail.com> --- That commit doesn't help, it seems Mono does array marshaling anyway in this case. I guess cominterop_get_ccw_default_mspec must not apply to runtime-callable wrappers. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #13 from Esme Povirk <madewokherd(a)gmail.com> --- Made a PR to finally fix the marshaling issues. After that, it complains about IE version but it does start. https://github.com/madewokherd/mono/pull/6 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 --- Comment #14 from Esme Povirk <madewokherd(a)gmail.com> --- I merged the PR. A CI build with the fix is available here: https://github.com/madewokherd/mono/actions/runs/1140343521 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 Esme Povirk <madewokherd(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |e6513521ff8b81ba838bb96d10f | |b20c64c1c2306 Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #15 from Esme Povirk <madewokherd(a)gmail.com> --- The fix for this was included in wine-mono 6.4.0 which will be in Wine 6.18. Marking fixed. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
https://bugs.winehq.org/show_bug.cgi?id=50623 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #16 from Alexandre Julliard <julliard(a)winehq.org> --- Closing bugs fixed in 6.18. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla