[Bug 45546] Magic The Gathering Arena updater: Unity fork of Mono-runtime reports 'Fatal error in gc, GetThreadContext failed'

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Jul 31 19:28:40 CDT 2018


https://bugs.winehq.org/show_bug.cgi?id=45546

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|                            |https://mtgarena.downloads.
                   |                            |wizards.com/Live/Windows32/
                   |                            |MTGAInstaller.exe
                 CC|                            |focht at gmx.net
           Keywords|                            |download
            Summary|Magic The Gathering Arena   |Magic The Gathering Arena
                   |updater crashes with        |updater: Unity fork of
                   |Unhandled exception         |Mono-runtime reports 'Fatal
                   |                            |error in gc,
                   |                            |GetThreadContext failed'

--- Comment #2 from Anastasius Focht <focht at gmx.net> ---
Hello lubosz,

looks like the app ships an old/broken Mono runtime. Old Mono had some nasty
threading bugs that ought to be fixed with newer Mono versions.

--- quote ---
Running with relay log seems to have a positive influence on the crash.
--- quote ---

That's expected because you change the (run)time behaviour due to excessive
tracing slowdowns.

There are a couple of bugs in Wine Bugzilla with the same underlying issue.
They are:

* resolved 'fixed' due to Wine/Wine-Mono update
* resolved 'invalid' because the app shipped own broken Mono runtime and didn't
bother with upgrades
* still open because OP didn't bother to respond for retesting with newer
Wine/Wine-Mono

--- snip ---
$ find ~/.wine/drive_c/ -iname *mono*
/home/focht/.wine/drive_c/Program Files/Wizards of the
Coast/MTGA/MTGA_Data/Mono
/home/focht/.wine/drive_c/Program Files/Wizards of the
Coast/MTGA/MTGA_Data/Mono/EmbedRuntime/MonoPosixHelper.dll
/home/focht/.wine/drive_c/Program Files/Wizards of the
Coast/MTGA/MTGA_Data/Mono/EmbedRuntime/mono.dll
/home/focht/.wine/drive_c/Program Files/Wizards of the
Coast/MTGA/MTGA_Data/Mono/etc/mono
/home/focht/.wine/drive_c/Program Files/Wizards of the
Coast/MTGA/MTGA_Data/Managed/Mono.Data.Tds.dll
/home/focht/.wine/drive_c/Program Files/Wizards of the
Coast/MTGA/MTGA_Data/Managed/Mono.Security.dll
/home/focht/.wine/drive_c/Program Files/Wizards of the
Coast/MTGA/MTGA_Data/Managed/Mono.Posix.dll
/home/focht/.wine/drive_c/windows/system32/monodebg.vxd
/home/focht/.wine/drive_c/users/focht/Application Data/.mono
--- snip ---

ProtectionID scan to reveal the old Mono runtime:

--- snip ---
-=[ ProtectionID v0.6.9.0 DECEMBER]=-
(c) 2003-2017 CDKiLLER & TippeX
Build 24/12/17-21:05:42
Ready...
Scanning -> C:\Program Files\Wizards of the
Coast\MTGA\MTGA_Data\Mono\EmbedRuntime\mono.dll
File Type : 32-Bit Dll (Subsystem : Win GUI / 2), Size : 2118592 (02053C0h)
Byte(s) | Machine: 0x14C (I386)
Compilation TimeStamp : 0x59E6CA13 -> Wed 18th Oct 2017 03:27:15 (GMT)
[TimeStamp] 0x59E6CA13 -> Wed 18th Oct 2017 03:27:15 (GMT) | PE Header | - |
Offset: 0x00000100 | VA: 0x10000100 | -
[TimeStamp] 0x59E6CA13 -> Wed 18th Oct 2017 03:27:15 (GMT) | Export | - |
Offset: 0x001EB894 | VA: 0x101EC894 | -
[TimeStamp] 0x59E6CA13 -> Wed 18th Oct 2017 03:27:15 (GMT) | DebugDirectory | -
| Offset: 0x001314C4 | VA: 0x101324C4 | -
-> File Appears to be Digitally Signed @ Offset 0203C00h, size : 017C0h / 06080
byte(s)
[LoadConfig] Struct determined as v8 (Expected size 140 | Actual size 64)
[!] Executable uses SEH Tables (/SAFESEH) (3 calculated 3 recorded... 0 invalid
addresses) 
[LoadConfig] CodeIntegrity -> Flags 0x1 | Catalog 0x0 (0) | Catalog Offset
0x625C3A43 | Reserved 0x646C6975
[LoadConfig] GuardAddressTakenIatEntryTable 0x76616C73 | Count 0x6F6D5C65
(1869438053)
[LoadConfig] GuardLongJumpTargetTable 0x625C6F6E | Count 0x646C6975
(1684826485)
[LoadConfig] HybridMetadataPointer 0x6975625C | DynamicValueRelocTable
0x5C73646C
[LoadConfig] FailFastIndirectProc 0x65626D65 | FailFastPointer 0x6E757264
[LoadConfig] UnknownZero1 0x656D6974
[File Heuristics] -> Flag #1 : 00000100000001001100000100000100 (0x0404C104)
[Entrypoint Section Entropy] : 6.72 (section #0) ".text   " | Size : 0x130A5D
(1247837) byte(s)
[DllCharacteristics] -> Flag : (0x0100) -> DEP
[SectionCount] 5 (0x5) | ImageSize 0x22F000 (2289664) byte(s)
[Export] 100% of function(s) (798 of 798) are in file | 0 are forwarded | 798
code | 0 data | 0 uninit data | 0 unknown | 
[VersionInfo] Company Name : Unity Technologies
[VersionInfo] Product Name : libmono
[VersionInfo] Product Version : 1.0.0.1
[VersionInfo] File Description : Unity Technologies fork of mono runtime
[VersionInfo] File Version : 1.0.0.1
[VersionInfo] Original FileName : mono.dll
[VersionInfo] Internal Name : mono.dll
[VersionInfo] Legal Copyrights : Copyright (C) 2015
[ModuleReport] [IAT] Modules -> VERSION.dll | WS2_32.dll | PSAPI.DLL |
WINMM.dll | MSWSOCK.dll | KERNEL32.dll | USER32.dll | ADVAPI32.dll |
SHELL32.dll | ole32.dll | OLEAUT32.dll
[Debug Info] (record 1 of 1) (file offset 0x1314C0)
Characteristics : 0x0 | TimeDateStamp : 0x59E6CA13 (Wed 18th Oct 2017 03:27:15
(GMT)) | MajorVer : 0 / MinorVer : 0 -> (0.0)
Type : 2 (0x2) -> CodeView | Size : 0x55 (85) 
AddressOfRawData : 0x1EA9F0 | PointerToRawData : 0x1E99F0
CvSig : 0x53445352 | SigGuid 93DFF46E-B56F-4181-AE72AAA960C2C88E
Age : 0x1 (1) | Pdb :
C:\buildslave\mono\build\builds\embedruntimes\win32\mono.pdb
[CdKeySerial] found "Invalid code" @ VA: 0x001AA2B8 / Offset: 0x001A92B8
[CdKeySerial] found "Unregistered" @ VA: 0x001B9B1C / Offset: 0x001B8B1C
[CompilerDetect] -> Visual C++ 10.0 (Visual Studio 2010)
[!] File appears to have no protection or is using an unknown protection
- Scan Took : 0.712 Second(s) [0000002C8h (712) tick(s)] [246 of 580 scan(s)
done]
--- snip ---

I'm not sure if the version info 1.0.0.1 and year 2015 is really accurate.
Maybe its possible to figure out from which branch/tag this was built from
their Mono fork .. but that seems like wasted time to me.

https://github.com/Unity-Technologies/mono

https://forum.unity.com/threads/new-version-of-mono-with-unity-4-3-any-additional-details-on-that.197948/page-2

Have fun reading through that thread ;-)

FYI I didn't encounter this problem on my machine.
The updater client downloaded everything and started the game launcher.

You could try some developer-internal Mono magic:

# Turns off the garbage collection in Mono
$ GC_DONT_GC=1 wine ./MTGA.exe

Afaik 'MONO_NO_SMP' environment variable isn't supported on older Mono
runtimes.

Regards

-- 
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.



More information about the wine-bugs mailing list