https://bugs.winehq.org/show_bug.cgi?id=47077
Bug ID: 47077 Summary: Regression: Brawlhalla crashes with latest wine Product: Wine Version: 4.6 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: composizion3@hotmail.com Distribution: ---
Created attachment 64267 --> https://bugs.winehq.org/attachment.cgi?id=64267 Console output.
Starting the game with latest wine-staging results in a crash. This doesn't happen with older wine versions.
https://bugs.winehq.org/show_bug.cgi?id=47077
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #1 from Fabian Maurer dark.shadow4@web.de --- Did you also test wine vanilla wine? Is it between wine-4.6 and wine-4.5? Or something staging changed?
https://bugs.winehq.org/show_bug.cgi?id=47077
Michele Renosto composizion3@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED
--- Comment #2 from Michele Renosto composizion3@hotmail.com --- I have tested a lutris build and it works there so it must be something in my wine build.
https://bugs.winehq.org/show_bug.cgi?id=47077
--- Comment #3 from Fabian Maurer dark.shadow4@web.de --- Did you test with the official packages? I'm not sure if the lutris one is vanilla wine.
https://bugs.winehq.org/show_bug.cgi?id=47077
--- Comment #4 from Michele Renosto composizion3@hotmail.com --- Lutris is using tkg's wine build: https://github.com/Tk-Glitch/PKGBUILDS/releases/tag/4.6.r0.g3f8edce5 https://github.com/Tk-Glitch/PKGBUILDS/tree/master/wine-tkg-git
https://bugs.winehq.org/show_bug.cgi?id=47077
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Status|RESOLVED |REOPENED Resolution|INVALID |--- CC| |xerox.xerox2000x@gmail.com URL| |http://www.brawlhalla.com/p | |lay/ Ever confirmed|0 |1
--- Comment #5 from Louis Lenders xerox.xerox2000x@gmail.com --- Bug is not invalid, but rather seems a duplicate. I tried the game (it`s free) in wine-staging 4.6 and got a crash too; backtrace below. It starts fine in current git for me.
@Michele: Could you try in just released wine-4.7, then the crash should be gone. If it still crashes in wine-4.7, could you then reopen this bugreport? Thanks!
Unhandled exception: page fault on read access to 0x7f07e638 in 32-bit code (0x7496f786). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7496f786 ESP:0034c310 EBP:0034c338 EFLAGS:00210202( R- -- I - - - ) EAX:7f06c920 EBX:00000000 ECX:0034c34c EDX:03288c68 ESI:0034cb2c EDI:7dd8e1a0 Stack dump: 0x0034c310: 00000000 02732e5c 0034c340 10098da6 0x0034c320: 0034d708 100cecb8 0034c34c 00000000 0x0034c330: 02732e5c 7dd8e1a0 0034c3e4 01b83b1f 0x0034c340: 0034c350 7f010085 01b83b1f 03288c68 0x0034c350: 00000000 0034cb2c 03221258 00000000 0x0034c360: 0322b808 00000000 00000000 0272c5a4 Backtrace: =>0 0x7496f786 SetupDiEnumDeviceInfo+0x26() in setupapi (0x0034c338) 1 0x01b83b1f EntryPoint+0x39e997() in adobe air (0x0034c3e4) 0x7496f786 SetupDiEnumDeviceInfo+0x26 in setupapi: testb $0x8,0x11d18(%ea
https://bugs.winehq.org/show_bug.cgi?id=47077
Louis Lenders xerox.xerox2000x@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |DUPLICATE
--- Comment #6 from Louis Lenders xerox.xerox2000x@gmail.com --- Resolving duplicate
*** This bug has been marked as a duplicate of bug 46971 ***
https://bugs.winehq.org/show_bug.cgi?id=47077
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Regression: Brawlhalla |Brawlhalla (Steam) crashes |crashes with latest wine |with Wine 4.6 (Steam Game | |Overlay Renderer hook | |engine can't cope with | |GOT/PIC register load code | |at API entry, needs | |DECLSPEC_HOTPATCH for | |setupapi.SetupDiEnumDeviceI | |nfo) CC| |focht@gmx.net URL|http://www.brawlhalla.com/p |https://store.steampowered. |lay/ |com/app/291550/Brawlhalla/ Component|-unknown |setupapi
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming. Refining some fields to be less ambiguous and have better Bugzilla query results.
The game seems to use Adobe AIR but the culprit is Steam Game Overlay Renderer hooking various APIs, and some of them have GOT/PIC register load code directly at API entry which is a no-no.
--- snip --- SetupDiEnumDeviceInfo:
79162040 E9 C5E0EA05 JMP 7F01010A 79162045 05 BBBF0500 ADD EAX,5BFBB 7916204A 8D4C24 04 LEA ECX,DWORD PTR SS:[ESP+4] 7916204E 83E4 F0 AND ESP,FFFFFFF0 79162051 FF71 FC PUSH DWORD PTR DS:[ECX-4] 79162054 55 PUSH EBP 79162055 89E5 MOV EBP,ESP 79162057 57 PUSH EDI 79162058 56 PUSH ESI 79162059 53 PUSH EBX 7916205A 51 PUSH ECX 7916205B 83EC 18 SUB ESP,18 7916205E 8B11 MOV EDX,DWORD PTR DS:[ECX] 79162060 8B59 04 MOV EBX,DWORD PTR DS:[ECX+4] 79162063 8B71 08 MOV ESI,DWORD PTR DS:[ECX+8] 79162066 F680 141D0100 08 TEST BYTE PTR DS:[EAX+11D14],8 ; *boom* 7916206D 75 61 JNZ SHORT setupapi.791620D0 7916206F 8D42 FF LEA EAX,DWORD PTR DS:[EDX-1] 79162072 83F8 FD CMP EAX,-3
...
7F01010A E9 918B0891 JMP gameover.10098CA0 7F01010F 0000 ADD BYTE PTR DS:[EAX],AL 7F010111 0000 ADD BYTE PTR DS:[EAX],AL --- snip ---
--- snip --- Executable modules Base Size Entry Name File version Path
00400000 00027000 00401725 Brawlhal C:\Program Files (x86)\Steam\steamapps\common\Brawlhalla\Brawlhalla.exe 018A0000 0150D000 018F5187 Adobe_AI 19.0.0.213 C:\Program Files (x86)\Steam\steamapps\common\Brawlhalla\Adobe AIR\Versions\1.0\Adobe AIR.dll 10000000 00164000 100A6D61 gameover 05.03.63.53 C:\Program Files (x86)\Steam\gameoverlayrenderer.dll 79150000 00085000 79155AA0 setupapi C:\windows\system32\setupapi.dll 7A390000 00112000 7A393D00 opengl32 5.1.2600.2082 C:\windows\system32\opengl32.dll ... --- snip ---
--- snip --- $ gdb /home/focht/projects/wine/staging-install-4.6-x86_64/lib/wine/setupapi.dll.so -batch -ex 'disassemble SetupDiEnumDeviceInfo' Dump of assembler code for function SetupDiEnumDeviceInfo: 0x00023040 <+0>: call 0x294b6 <__x86.get_pc_thunk.ax> 0x00023045 <+5>: add $0x5bfbb,%eax 0x0002304a <+10>: lea 0x4(%esp),%ecx 0x0002304e <+14>: and $0xfffffff0,%esp 0x00023051 <+17>: pushl -0x4(%ecx) 0x00023054 <+20>: push %ebp 0x00023055 <+21>: mov %esp,%ebp 0x00023057 <+23>: push %edi 0x00023058 <+24>: push %esi 0x00023059 <+25>: push %ebx 0x0002305a <+26>: push %ecx 0x0002305b <+27>: sub $0x18,%esp 0x0002305e <+30>: mov (%ecx),%edx 0x00023060 <+32>: mov 0x4(%ecx),%ebx 0x00023063 <+35>: mov 0x8(%ecx),%esi 0x00023066 <+38>: testb $0x8,0x11d14(%eax) 0x0002306d <+45>: jne 0x230d0 <SetupDiEnumDeviceInfo+144> 0x0002306f <+47>: lea -0x1(%edx),%eax ... --- snip ---
Regards
https://bugs.winehq.org/show_bug.cgi?id=47077
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Closing Duplicate.
https://bugs.winehq.org/show_bug.cgi?id=47077
--- Comment #9 from Michele Renosto composizion3@hotmail.com --- It still crashes in my setup even with wine 4.7 , can someone else reproduce?
https://bugs.winehq.org/show_bug.cgi?id=47077
--- Comment #10 from Anastasius Focht focht@gmx.net --- Hello Michele,
works fine here with Wine 4.7 and current Git (wine-4.7-98-gd48ffbdc01). I've played some offline matches without crash.
How does your crash look like? (attach backtrace)
Regards
https://bugs.winehq.org/show_bug.cgi?id=47077
--- Comment #11 from Michele Renosto composizion3@hotmail.com --- Created attachment 64322 --> https://bugs.winehq.org/attachment.cgi?id=64322 backtrace 4.7
https://bugs.winehq.org/show_bug.cgi?id=47077
--- Comment #12 from Anastasius Focht focht@gmx.net --- Hello Michele,
your backtrace indicates another hotpatch/PIC victim.
Call frame #1 -> gameoverlayrenderer = hook Call frame #0 (crash site) -> AUDDRV_GetEndpointIDs (audio backend GetEndpointIDs)
The instruction at crash site does GOT data access. It's very likely that the hook engine copied the GOT/PIC register load code into the trampoline which can't work by design.
--- snip --- Unhandled exception: page fault on read access to 0x7f037d94 in 32-bit code (0x771b8d72). 00e6:fixme:dbghelp:elf_search_auxv can't find symbol in module Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:771b8d72 ESP:0032e7b0 EBP:0032e7c8 EFLAGS:00010213( R- -- I -A- -C) EAX:00000003 EBX:00000002 ECX:00507900 EDX:7f037580 ESI:00507758 EDI:00507758 Stack dump: 0x0032e7b0: 771e0930 0032e7c8 0032e7d4 0032e7dc 0x0032e7c0: 00000000 00507618 0032e7f8 1009bf76 0x0032e7d0: 005075f0 7f0102c5 1009bf76 00507758 0x0032e7e0: 00507618 0032e844 0032e810 0032e974 0x0032e7f0: 100ce6f8 ffffffff 0032e844 01c9e6b6 0x0032e800: 00507758 005075f0 01ca013d 00507618 Backtrace: =>0 0x771b8d72 AUDDRV_GetEndpointIDs+0xffffffff() in winepulse (0x0032e7c8) 1 0x1009bf76 EntryPoint+0xffffffff() in gameoverlayrenderer (0x0032e7f8) 2 0x01c9e6b6 EntryPoint+0x3a952e() in adobe air (0x0032e844) 3 0x01a304ce EntryPoint+0x13b346() in adobe air (0x0032e864) 4 0x01a14b9f EntryPoint+0x11fa17() in adobe air (0x0032e98c) 5 0x01931b11 EntryPoint+0x3c989() in adobe air (0x0032ea84) 0x771b8d72 AUDDRV_GetEndpointIDs+0xffffffff in winepulse: testb $0x8,0x814(%edx) --- snip ---
Building 32-bit Wine with '-fno-PIC' on x86 is the "one solution to rule them all". It will fix all hotpatch related issues, in fact making DECLSPEC_HOTPATCH unnecessary (except for few broken apps that expect hotpatch signature at API entry).
This is covered by bug 47097 ("Multiple Steam games crash on startup ( Steam Game Overlay Renderer hook engine can't cope with GOT/ PIC register load code)(Counter-Strike, Black Mesa, The Superlatives: Shattered Worlds, Lara Croft GoL)") and friends.
Either build Wine from current Git/Source or wait for Wine 4.8 release.
Regards