https://bugs.winehq.org/show_bug.cgi?id=49896
Bug ID: 49896 Summary: Desktop Goose 0.3 crashes attempting to load an assembly Product: Wine Version: 5.17 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: mscoree Assignee: wine-bugs@winehq.org Reporter: gerbilsoft@gerbilsoft.com Distribution: ---
Created attachment 68252 --> https://bugs.winehq.org/attachment.cgi?id=68252 DesktopGoose v0.3 backtrace
Desktop Goose v0.3 crashes on startup while attempting to load an assembly.
https://samperson.itch.io/desktop-goose
Using wine-staging 5.17 and wine-mono 5.1.0.
https://bugs.winehq.org/show_bug.cgi?id=49896
Esme Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://samperson.itch.io/d | |esktop-goose Keywords| |download
https://bugs.winehq.org/show_bug.cgi?id=49896
Esme Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |madewokherd@gmail.com
--- Comment #1 from Esme Povirk madewokherd@gmail.com --- Huh, I tried it and it's working here.
Do you think you can get a stack trace with debugging symbols?
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #2 from Esme Povirk madewokherd@gmail.com --- A +mscoree trace might also be informative.
https://bugs.winehq.org/show_bug.cgi?id=49896
David Korth gerbilsoft@gerbilsoft.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #68252|0 |1 is obsolete| |
--- Comment #3 from David Korth gerbilsoft@gerbilsoft.com --- Created attachment 68264 --> https://bugs.winehq.org/attachment.cgi?id=68264 Desktop Goose v0.3 backtrace with +mscoree
Right before mono crashes, wine prints:
0588:trace:mscoree:mono_assembly_preload_hook_fn "GooseDesktop.resources, Version=1.0.0.0, Culture=en-US, PublicKeyToken=null"
I tested this with a new wineprefix and that didn't help.
I'm using Gentoo Linux with debug symbols enabled for app-emulation/wine-staging, so I'm not sure why debug info isn't showing up properly.
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #4 from Rafał Mużyło galtgendo@o2.pl ---
I'm using Gentoo Linux with debug symbols enabled for app-emulation/wine-staging, so I'm not sure why debug info isn't showing up properly.
I haven't rechecked it lately, but awhile ago wine just failed at split-debug (.gnu_debuglink). There were supposed to be improvements since (quite a few commits awhile ago), but perhaps something was missed.
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #5 from David Korth gerbilsoft@gerbilsoft.com --- Created attachment 68270 --> https://bugs.winehq.org/attachment.cgi?id=68270 Desktop Goose v0.3 backtrace (wine-staging-5.18, non-split debug, +mscoree)
After the Mono native crash report, it now shows this:
wine: Unhandled privileged instruction at address 0031EA9C (thread 0100), starting debugger...
Short backtrace: Backtrace: =>0 0x0031ea9c (0x0031e798) 1 0x7bc3757c RtlCreateActivationContext+0xffffffff() in ntdll (0x0031ebf8) 2 0x00780000 (0x0031ebf8) 3 0x7b08eff8 GetSystemTimes+0x677() in kernelbase (0x0031ec38) 4 0x101d2049 MonoFixupExe+0x7b1a8() in libmono-2.0-x86 (0x00784718)
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #6 from Esme Povirk madewokherd@gmail.com --- Still doesn't seem to have picked up any debugging symbols. Those function names would be from the exports and I don't trust any of them.
This does tell us that the crash doesn't seem to be mscoree-related, as it's not still in mscoree's load callback. Assuming you are using the binaries of Wine Mono 5.1.0 from winehq, I should be able to figure out the libmono-2.0-x86 part of it from the address, at least.
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #7 from David Korth gerbilsoft@gerbilsoft.com --- The wine-mono build is from Gentoo's repositories, which matches this installer:
https://dl.winehq.org/wine/wine-mono/5.1.0/wine-mono-5.1.0-x86.msi
I'll try to figure out why the debugging symbols aren't working properly.
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #8 from Esme Povirk madewokherd@gmail.com --- The function crashing in mono is flush_thread_interrupt_queue where it does this: WaitForSingleObjectEx (GetCurrentThread (), 0, TRUE);
I have no idea why this would ever crash.
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #9 from Esme Povirk madewokherd@gmail.com --- Calling through kernelbase to ntdll is expected.
The address of the crashing instruction appears to be on the stack.
So this is most likely a case of stack misalignment, where a function pops a different number of bytes than expected, and a pointer on the stack is treated as a return address. We're lucky the stack trace has any useful information.
It might be worth checking whether any compiler/optimization flags in your build are contributing to this.
https://bugs.winehq.org/show_bug.cgi?id=49896
Esme Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|mscoree |ntdll
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #10 from Esme Povirk madewokherd@gmail.com --- Otherwise, I think a +server,+relay,+seh log could tell us if it's an APC causing the crash and where that APC comes from.
One other shot in the dark would be to *downgrade* wine-mono to 5.0.1 (https://github.com/madewokherd/wine-mono/releases/tag/wine-mono-5.0.1) which is the last version before we switched the compiler for that to llvm-mingw. That version also works for me. The easiest way to do that would be following the "prefix local install" instructions here: https://wiki.winehq.org/Mono#Prefix_Local_Install
https://bugs.winehq.org/show_bug.cgi?id=49896
--- Comment #11 from David Korth gerbilsoft@gerbilsoft.com --- Found it. It was the `-fstack-protector-strong` flag. I'm guessing wine doesn't really like this because of interaction with different executable formats and APIs.
https://bugs.winehq.org/show_bug.cgi?id=49896
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Status|UNCONFIRMED |NEW URL|https://samperson.itch.io/d |https://web.archive.org/web |esktop-goose |/20210206164845/https://sof | |tpedia-secure-download.com/ | |dl/c2b875c30943fdd0e20b7d11 | |a6f0fd9a/601ec84a/100261883 | |/software/other_tools/Deskt | |opGoose%20v0.3%20Extractor. | |exe Summary|Desktop Goose 0.3 crashes |Desktop Goose 0.3 (.NET 4.0 |attempting to load an |app) crashes in Wine-Mono |assembly |when attempting to load an | |assembly (Wine built with | |'-fstack-protector-strong') Ever confirmed|0 |1
--- Comment #12 from Anastasius Focht focht@gmx.net --- Hello folks,
adding stable download link via Internet Archive:
https://web.archive.org/web/20210206164845/https://softpedia-secure-download...
Refining the summary to mention the special condition otherwise it creates the false impression that it doesn't work at all.
With default CFLAGS the app works as expected on all recent Wine-Mono releases. A Goose is chasing the mouse cursor on Desktop, random windows open with memes etc.
$ sha1sum DesktopGoose\ v0.3\ Extractor.exe f9e281b20d51e0db73d124d172dfce8ada1b1368 DesktopGoose v0.3 Extractor.exe
$ du -sh DesktopGoose\ v0.3\ Extractor.exe 4.3M DesktopGoose v0.3 Extractor.exe
$ wine --version wine-5.17
Regards