https://bugs.winehq.org/show_bug.cgi?id=42907
Bug ID: 42907 Summary: Wine crashes when loading The Specialists mod for Half Life Product: Wine Version: 2.6 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: ganthore@gmail.com Distribution: ---
Consider this a followup to the ABANDONED ticket: https://bugs.winehq.org/show_bug.cgi?id=8859 This has been a long standing problem for around a decade, I'd like for this to get fixed...
When running The Specialists mod, the game will instantly crash once a map being to load.
I've reproduced this on both Gentoo and FreeBSD systems. The game runs fine on native windows.
wine hl.exe -game ts -novid -debug
fixme:module:load_dll Loader redirect from L"wined3d.dll" to L"wined3d-csmt.dll" err:dc:CreateDCW no driver found for L"\\.\DISPLAY2\Monitor0" Using breakpad crash handler fixme:ntdll:EtwEventRegister ({47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x3f006740, 0x3f041d28, 0x3f041d20) stub. fixme:ntdll:EtwEventRegister ({58a9201e-73b0-42ce-9821-7e134361bc70}, 0x3f006740, 0x3f041d60, 0x3f041d58) stub. fixme:ntdll:EtwEventRegister ({3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x3f006740, 0x3f041cf0, 0x3f041ce8) stub. fixme:ntdll:EtwEventRegister ({1432afee-73b0-42ce-9821-7e134361b433}, 0x3f006740, 0x3f041d98, 0x3f041d90) stub. fixme:ntdll:EtwEventRegister ({4372afee-73b0-42ce-9821-7e134361b519}, 0x3f006740, 0x3f041dd0, 0x3f041dc8) stub. fixme:ver:GetCurrentPackageId (0x30eb40 0x0): stub fixme:ntdll:create_logical_proc_info stub fixme:ntdll:create_logical_proc_info stub Setting breakpad minidump AppID = 70 Forcing breakpad minidump interfaces to load Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit fixme:ntdll:EtwEventRegister ({47a9201e-73b0-42ce-9821-7e134361bc6f}, 0xe57850, 0xece168, 0xece160) stub. fixme:ntdll:EtwEventRegister ({58a9201e-73b0-42ce-9821-7e134361bc70}, 0xe57850, 0xece1a0, 0xece198) stub. fixme:ntdll:EtwEventRegister ({3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0xe57850, 0xece130, 0xece128) stub. fixme:ntdll:EtwEventRegister ({1432afee-73b0-42ce-9821-7e134361b433}, 0xe57850, 0xece1d8, 0xece1d0) stub. fixme:ntdll:EtwEventRegister ({4372afee-73b0-42ce-9821-7e134361b519}, 0xe57850, 0xece210, 0xece208) stub. fixme:imm:ImmGetOpenStatus (0x168bd8): semi-stub fixme:ver:GetCurrentPackageId (0x32e68c 0x0): stub Steam_SetMinidumpSteamID: Caching Steam ID: 76561197960455784 [API loaded yes] Steam_SetMinidumpSteamID: Setting Steam ID: 76561197960455784 err:ole:CoGetClassObject class {4c9b6dde-6809-46e6-a278-9b6a97588670} not registered err:ole:CoGetClassObject no class object {4c9b6dde-6809-46e6-a278-9b6a97588670} could be created for context 0x1 fixme:win:RegisterDeviceNotificationW (hwnd=0x10182, filter=0x161f64c,flags=0x00000000) returns a fake device notification handle! fixme:xinput:XInputGetCapabilities (index 0, flags 0x1, capabilities 0x32f674) Stub! fixme:win:RegisterTouchWindow (0x10184 00000003): stub fixme:wgl:X11DRV_wglChoosePixelFormatARB unused pfAttribFList fixme:imm:ImmReleaseContext (0x10184, 0xf8a6a0): stub fixme:msctf:ThreadMgr_ActivateEx Unimplemented flags 0x4 fixme:msctf:ThreadMgrSource_AdviseSink (0x206a58) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c} fixme:imm:NotifyIME NI_CLOSECANDIDATE fixme:msctf:ThreadMgrSource_AdviseSink (0x206a58) Unhandled Sink: {ea1ea136-19df-11d7-a6d2-00065b84435c} fixme:iphlpapi:NotifyAddrChange (Handle 0x1022ee34, overlapped 0xfc55670): stub fixme:winsock:WSALookupServiceBeginW (0x1022ef34 0x00000ff0 0x1022ef7c) Stub! [0428/164919:ERROR:network_change_notifier_win.cc(111)] WSALookupServiceBegin failed with: 8 fixme:ntdll:create_logical_proc_info stub fixme:ntdll:create_logical_proc_info stub AppActive: active AppActive: active fixme:winsock:convert_af_w2u unhandled Windows address family 6 fixme:winsock:convert_af_w2u unhandled Windows address family 6 fixme:winsock:convert_af_w2u unhandled Windows address family 6 fixme:wbemprox:wbem_locator_ConnectServer unsupported flags fixme:wbemprox:client_security_SetBlanket 0x666b4b18, 0x1f22f620, 10, 0, (null), 3, 3, 0x0, 0x00000000 fixme:wbemprox:client_security_Release 0x666b4b18 fixme:iphlpapi:NotifyAddrChange (Handle 0x307014c, overlapped 0x3070150): stub fixme:wbemprox:wbem_locator_ConnectServer unsupported flags fixme:wbemprox:client_security_SetBlanket 0x666b4b18, 0x1f221328, 10, 0, (null), 3, 3, 0x0, 0x00000000 fixme:wbemprox:client_security_Release 0x666b4b18 fixme:wbemprox:enum_class_object_Next timeout not supported Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit Steam_SetMinidumpSteamID: Caching Steam ID: 76561197960455784 [API loaded yes] Steam_SetMinidumpSteamID: Setting Steam ID: 76561197960455784 fixme:winsock:interface_bind Broadcast packets on interface-bound sockets are not currently supported on this platform, receiving broadcast packets will not work on socket 03ac. err:winsock:interface_bind Failed to bind to interface, receiving broadcast packets will not work on socket 03ac. fixme:ntdll:EtwEventRegister ({47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x3f006740, 0x3f041d28, 0x3f041d20) stub. fixme:ntdll:EtwEventRegister ({58a9201e-73b0-42ce-9821-7e134361bc70}, 0x3f006740, 0x3f041d60, 0x3f041d58) stub. fixme:ntdll:EtwEventRegister ({3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x3f006740, 0x3f041cf0, 0x3f041ce8) stub. fixme:ntdll:EtwEventRegister ({1432afee-73b0-42ce-9821-7e134361b433}, 0x3f006740, 0x3f041d98, 0x3f041d90) stub. fixme:ntdll:EtwEventRegister ({4372afee-73b0-42ce-9821-7e134361b519}, 0x3f006740, 0x3f041dd0, 0x3f041dc8) stub. File c:\program files\steam\steamapps\common\half-life\ts\demoheader.dmf was never closed fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub. fixme:ntdll:EtwEventUnregister (deadbeef) stub.
https://bugs.winehq.org/show_bug.cgi?id=42907
ganthore ganthore@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Distribution|--- |Gentoo
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #1 from ganthore ganthore@gmail.com --- Use the following link to access content for the mod, use the 3.0 client.
http://www.moddb.com/mods/the-specialists
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #2 from ganthore ganthore@gmail.com --- Created attachment 58051 --> https://bugs.winehq.org/attachment.cgi?id=58051 crash1
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #3 from ganthore ganthore@gmail.com --- Created attachment 58052 --> https://bugs.winehq.org/attachment.cgi?id=58052 crash2
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #4 from ganthore ganthore@gmail.com --- I've attached 2 different WINEDEBUG=+all runtime logs to this ticket.
The 2nd crash log shows a LOT of calls to KERNEL32.IsBadCodePtr().
Please let me know if I can provide you all with any further information. Thanks.
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #5 from ganthore ganthore@gmail.com --- Link to full crash log: https://drive.google.com/file/d/0B871E1AboydtYWE4WXlRVGRGdWM/view?usp=sharin...
https://bugs.winehq.org/show_bug.cgi?id=42907
ganthore ganthore@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |ntdll Distribution|Gentoo |ArchLinux Version|2.6 |3.13 Hardware|x86 |x86-64
https://bugs.winehq.org/show_bug.cgi?id=42907
ganthore ganthore@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |https://www.moddb.com/mods/ | |the-specialists
https://bugs.winehq.org/show_bug.cgi?id=42907
ganthore ganthore@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|3.13 |3.15
https://bugs.winehq.org/show_bug.cgi?id=42907
ganthore ganthore@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Wine crashes when loading |hl.exe: Wine crashes when |The Specialists mod for |loading a map in The |Half Life |Specialists 3.0 mod
https://bugs.winehq.org/show_bug.cgi?id=42907
ganthore ganthore@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|hl.exe: Wine crashes when |hl.exe: Wine deadlocks when |loading a map in The |loading a map in The |Specialists 3.0 mod |Specialists 3.0 mod
https://bugs.winehq.org/show_bug.cgi?id=42907
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |joseph.kucia@gmail.com Version|3.15 |2.6
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #6 from ganthore ganthore@gmail.com --- Steps to reproduce:
1) Install and login to Steam (https://steamcdn-a.akamaihd.net/client/installer/SteamSetup.exe) 2) Install Half-Life from the steam menu 3) Download and install The Specialists 3.0 mod from modb (https://www.moddb.com/downloads/the-specialists-v30-client-windows) 4) Make sure that The Specialists installs into your half life folder, you may have to launch half-life once and restart steam before the installer correctly detects the half-life path 5) Launch "The Specialists" from the steam menu 6) Click on "create server" 7) Click on the "start" button
You will see the progress bar load, once it reaches the end, the software will deadlock.
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #7 from ganthore ganthore@gmail.com --- When I attempt to attach to the process that is freezing, winedbg is still stuck waiting on the last cont, so I can't request a backtrace.
The launcher terminal however is constantly throwing an error that indicates that the threads truly are locked:
0057:err:ntdll:RtlpWaitForCriticalSection section 0x7bd21160 "../../../wine/dlls/ntdll/loader.c: loader_section" wait timed out in thread 0057, blocked by 0043, retrying (60 sec)
0057:err:ntdll:RtlpWaitForCriticalSection section 0x7bd21160 "../../../wine/dlls/ntdll/loader.c: loader_section" wait timed out in thread 0057, blocked by 0043, retrying (60 sec)
0057:err:ntdll:RtlpWaitForCriticalSection section 0x7bd21160 "../../../wine/dlls/ntdll/loader.c: loader_section" wait timed out in thread 0057, blocked by 0043, retrying (60 sec)
0057:err:ntdll:RtlpWaitForCriticalSection section 0x7bd21160 "../../../wine/dlls/ntdll/loader.c: loader_section" wait timed out in thread 0057, blocked by 0043, retrying (60 sec)
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #8 from ganthore ganthore@gmail.com --- Wine-dbg>info process pid threads executable (all id:s are in hex) 00000042 13 'hl.exe' 00000044 5 _ 'explorer.exe' 0000000e 5 'services.exe' 00000020 4 _ 'winedevice.exe' 0000001b 3 _ 'plugplay.exe' 00000013 4 _ 'winedevice.exe' Wine-dbg>attach 0x00000042 0xf7f67069 __kernel_vsyscall+0x9 in [vdso].so: popl %ebp Wine-dbg>set $BreakOnFirstChance=0 Wine-dbg>cont Ctrl-C: stopping debuggee 0xf7f67067 __kernel_vsyscall+0x7 in [vdso].so: int $0x80 Wine-dbg>bt Backtrace: =>0 0xf7f67067 __kernel_vsyscall+0x7() in [vdso].so (0x0032f158) 1 0xf7d5b3c7 __libc_read+0x66() in libpthread.so.0 (0x0032f158) 2 0x7bcaaf47 in ntdll (+0x6af46) (0x0032f158) 3 0x7bcac805 in ntdll (+0x6c804) (0x0032f318) 4 0x7bcb41f5 in ntdll (+0x741f4) (0x0032f468) 5 0x7bcb670f NtWaitForMultipleObjects+0x2e() in ntdll (0x0032f498) 6 0x7bc42ac5 in ntdll (+0x2ac4) (0x0032f4c4) 7 0x00000001 (0x0032f4c4) 8 0x7bc428d2 in ntdll (+0x28d1) (0x0032f628) 9 0x7b47897a InterlockedDecrement+0x361() in kernel32 (0x0032f628) 10 0x7b478b03 WaitForMultipleObjectsEx+0x32() in kernel32 (0x0032f678) 11 0x7b478b6d WaitForSingleObject+0x2c() in kernel32 (0x0032f6b8) 12 0x211017ed in mss32 (+0x17ec) (0x0032f728) 13 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 14 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 15 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 16 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 17 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 18 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 19 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 20 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 21 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 22 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 23 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 24 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 25 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 26 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 27 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 28 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 29 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 30 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 31 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 32 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 33 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 34 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 35 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 36 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 37 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 38 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 39 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 40 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 41 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 42 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 43 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 44 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 45 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 46 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 47 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 48 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 49 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 50 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 51 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 52 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 53 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 54 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 55 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 56 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 57 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 58 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 59 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 60 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 61 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 62 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 63 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 64 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 65 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 66 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 67 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 68 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 69 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 70 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 71 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 72 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 73 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 74 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 75 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 76 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 77 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 78 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 79 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 80 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 81 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 82 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 83 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 84 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 85 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 86 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 87 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 88 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 89 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 90 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 91 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 92 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 93 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 94 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 95 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 96 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 97 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 98 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 99 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 100 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 101 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 102 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 103 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 104 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 105 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 106 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 107 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 108 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 109 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 110 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 111 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 112 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 113 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 114 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 115 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 116 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 117 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 118 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 119 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 120 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 121 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 122 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 123 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 124 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 125 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 126 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 127 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 128 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 129 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 130 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 131 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 132 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 133 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 134 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 135 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 136 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 137 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 138 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 139 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 140 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 141 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 142 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 143 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 144 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 145 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 146 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 147 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 148 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 149 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 150 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 151 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 152 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 153 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 154 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 155 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 156 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 157 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 158 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 159 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 160 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 161 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 162 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 163 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 164 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 165 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 166 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 167 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 168 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 169 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 170 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 171 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 172 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 173 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 174 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 175 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 176 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 177 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 178 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 179 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 180 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 181 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 182 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 183 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 184 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 185 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 186 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 187 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 188 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 189 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 190 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 191 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 192 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 193 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 194 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 195 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 196 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 197 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 198 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 199 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) 200 0x7bc7aed6 call_dll_entry_point+0x15() in ntdll (0x0032f748) Wine-dbg>
https://bugs.winehq.org/show_bug.cgi?id=42907
zzzzzyzz@hacari.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |zzzzzyzz@hacari.org
https://bugs.winehq.org/show_bug.cgi?id=42907
ganthore ganthore@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|2.6 |3.16
--- Comment #9 from ganthore ganthore@gmail.com --- Confirmed that the problem still exists on the latest version of wine (3.16) so I have adjusted the wine version in the ticket to reflect this.
https://bugs.winehq.org/show_bug.cgi?id=42907
Jeff Zaroyko jeffz@jeffz.name changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|3.16 |2.6
--- Comment #10 from Jeff Zaroyko jeffz@jeffz.name --- (In reply to ganthore from comment #9)
Confirmed that the problem still exists on the latest version of wine (3.16) so I have adjusted the wine version in the ticket to reflect this.
That field is the original reported version. If the bug still exists when re-testing, simply leave a comment with the latest version tested per: https://wiki.winehq.org/Bugs
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #11 from ganthore ganthore@gmail.com --- Still a problem on wine-4.0-rc5
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #12 from ganthore ganthore@gmail.com --- Still a problem on wine-4.0-rc7
https://bugs.winehq.org/show_bug.cgi?id=42907
Robert Walker bob.mt.wya@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |bob.mt.wya@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=42907
cheetah@tanabi.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |cheetah@tanabi.org
--- Comment #13 from cheetah@tanabi.org --- Ganthore would probably pay money to have this bug fixed, so you guys are totally missing out on an extortion opportunity :) But seriously, he's obsessed with this game, if there's any way we can get some help here you would make this guy happier than you can possibly know. :D
Anyway, I tried to help him. I ran strace on the hl.exe process and I can see it is hanging on read(7,...) File descriptor 7 is a pipe to wineserver.
I attached gdb to the process and forced it to return the read(...) with -1 just to see what happens. There's a lot of NtWaitForSingleObject, then some RtlpWaitForCriticalSection, then finally it looks like its doing something with registry keys and trying to NtNotifyChangeKeys ... eventually it gets stuck in a loop on WS_Select and there's nothing I can do in gdb to break that loop. Presumably, it's just forever trying to communicate with wineserver but no communications are returned.
I'm attaching my strace log in case that helps. :)
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #14 from cheetah@tanabi.org --- strace log is too big, here's a drive link:
https://drive.google.com/file/d/1YRa-GNP99A04oUosrOMbsWntfJ4fKjem/view?usp=s...
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #15 from ganthore ganthore@gmail.com --- Still a problem on wine-4.1
https://bugs.winehq.org/show_bug.cgi?id=42907
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #16 from Zebediah Figura z.figura12@gmail.com --- If possible, can someone try pulling a log with +relay,+sync,+server,+pid,+seh?
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #17 from cheetah@tanabi.org --- (In reply to Zebediah Figura from comment #16)
If possible, can someone try pulling a log with +relay,+sync,+server,+pid,+seh?
Here is the rather huge log:
https://drive.google.com/file/d/1btgSxVTNOkJuSJR0oPWjyaIbw9JBk3wE/view?usp=s...
The infinite loop is this stuff:
003b: select( flags=2, cookie=0893f9d8, timeout=+0.0500000, prev_apc=0000, result={}, data={WAIT,handles={00f4}} ) 003b: select() = PENDING { timeout=1d4bff9f09eec94 (+0.0500000), call={APC_NONE}, apc_handle=0000 } 0029:0030:Call KERNEL32.SetEvent(000000bc) ret=7c68caa4 0030: event_op( handle=00bc, op=1 ) 0031: *wakeup* signaled=0 0030: event_op() = 0 0029:0031:Ret KERNEL32.WaitForSingleObject() retval=00000000 ret=7c6e6c19 0029:0030:Ret KERNEL32.SetEvent() retval=00000001 ret=7c68caa4 0029:0031:Call ntdll.RtlAcquireResourceShared(001a5384,00000001) ret=7c6e6adc 0029:0031:Ret ntdll.RtlAcquireResourceShared() retval=00000001 ret=7c6e6adc 0029:0031:Call ntdll.RtlAcquireResourceShared(001a5a74,00000001) ret=7c6e5d32 0029:0031:Ret ntdll.RtlAcquireResourceShared() retval=00000001 ret=7c6e5d32 0029:0031:Call ntdll.RtlReleaseResource(001a5a74) ret=7c6e654d 0029:0031:Ret ntdll.RtlReleaseResource() retval=00000000 ret=7c6e654d 0029:0031:Call ntdll.RtlReleaseResource(001a5384) ret=7c6e6bff 0029:0031:Ret ntdll.RtlReleaseResource() retval=00000000 ret=7c6e6bff 0029:0031:Call KERNEL32.WaitForSingleObject(000000bc,0000163f) ret=7c6e6c19 0031: select( flags=2, cookie=080bf9d8, timeout=+5.6950000, prev_apc=0000, result={}, data={WAIT,handles={00bc}} )
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #18 from ganthore ganthore@gmail.com --- Still a problem on wine-4.2
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #19 from ganthore ganthore@gmail.com --- I'd be more than happy to provide a complete bundle of the game w/ the mod loaded, but I'd prefer you reach out to me directly via my email which is ganthore AT gmail DOT com.
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #20 from Zebediah Figura z.figura12@gmail.com --- Sorry for taking so long to actually look at this.
It hangs because it tries to wait for a thread to exit during its DLL_PROCESS_DETACH routine, but I don't think that's the underlying cause. This is more interesting:
0029:002a:Call ntdll.RtlAllocateHeap(07660000,00000000,00096000) ret=0751c261 0029:002a:Ret ntdll.RtlAllocateHeap() retval=0ad50020 ret=0751c261 0029:002a:Call ntdll.RtlAllocateHeap(07660000,00000000,00001000) ret=0751c261 0029:002a:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7bc4db47 ip=7bc4db47 tid=002a 0029:002a:trace:seh:raise_exception info[0]=00000000 0029:002a:trace:seh:raise_exception info[1]=0776e4b0 0029:002a:trace:seh:raise_exception eax=07660014 ebx=0776e4b0 ecx=000df008 edx=0768f4a8 esi=07770000 edi=0768f4b8 0029:002a:trace:seh:raise_exception ebp=0033f584 esp=0033f56c cs=0023 ds=002b es=002b fs=006b gs=0063 flags=00210206
It (the mod?) crashes due to heap corruption, in a heap that it creates itself.
Can you please try attaching a log with warn+heap,+mmdevapi,+alsa,+pulse,+ieframe?
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #21 from Zebediah Figura z.figura12@gmail.com --- (In reply to Zebediah Figura from comment #20)
Sorry for taking so long to actually look at this.
It hangs because it tries to wait for a thread to exit during its DLL_PROCESS_DETACH routine, but I don't think that's the underlying cause. This is more interesting:
0029:002a:Call ntdll.RtlAllocateHeap(07660000,00000000,00096000) ret=0751c261 0029:002a:Ret ntdll.RtlAllocateHeap() retval=0ad50020 ret=0751c261 0029:002a:Call ntdll.RtlAllocateHeap(07660000,00000000,00001000) ret=0751c261 0029:002a:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7bc4db47 ip=7bc4db47 tid=002a 0029:002a:trace:seh:raise_exception info[0]=00000000 0029:002a:trace:seh:raise_exception info[1]=0776e4b0 0029:002a:trace:seh:raise_exception eax=07660014 ebx=0776e4b0 ecx=000df008 edx=0768f4a8 esi=07770000 edi=0768f4b8 0029:002a:trace:seh:raise_exception ebp=0033f584 esp=0033f56c cs=0023 ds=002b es=002b fs=006b gs=0063 flags=00210206
It (the mod?) crashes due to heap corruption, in a heap that it creates itself.
Can you please try attaching a log with warn+heap,+mmdevapi,+alsa,+pulse,+ieframe?
Actually, +heap would be better, if possible. (Though it will likely end up making the game very slow.)
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #22 from ganthore ganthore@gmail.com --- Hey Zebediah,
Thanks for your reply, I'll have cheetah give you more details. In the meantime, I directly emailed your gmail account some information that I think will help speed things up.
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #23 from cheetah@tanabi.org --- Here it is, with +heap and the rest
https://drive.google.com/file/d/1wIGS3reTsC5HGCUVoyMJNNRU00t_OzIS/view?usp=s...
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #24 from Zebediah Figura z.figura12@gmail.com --- (In reply to ganthore from comment #22)
Hey Zebediah,
Thanks for your reply, I'll have cheetah give you more details. In the meantime, I directly emailed your gmail account some information that I think will help speed things up.
The mod is just broken. It writes a good 16 or so bytes past the end of a large allocation and trashes the next arena header. I don't know if there's anything we can do about this.
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #25 from Zebediah Figura z.figura12@gmail.com --- Created attachment 63663 --> https://bugs.winehq.org/attachment.cgi?id=63663 ugly hack to mitigate heap trashing
This hack seems to consistently make it work, but it'll have to be applied locally.
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #26 from ganthore ganthore@gmail.com --- I can confirm that your hack fixes the problem. I tested against wine-3.19 with the staging, poe and pba patches. Thank you for coming up with a solution here.
I wonder how native windows mitigates this heap problem? The mod runs fine on native win98/2000/xp/7/8/8.1/10
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #27 from Zebediah Figura z.figura12@gmail.com --- (In reply to ganthore from comment #26)
I can confirm that your hack fixes the problem. I tested against wine-3.19 with the staging, poe and pba patches. Thank you for coming up with a solution here.
I wonder how native windows mitigates this heap problem? The mod runs fine on native win98/2000/xp/7/8/8.1/10
I don't know. Somehow their heap structure must be different such that critical data isn't stored 16 bytes past the end of the allocation.
One possibility is that pages are mapped directly, similar to Wine's "large block" allocation, but obviously with a lower threshold.
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #28 from ganthore ganthore@gmail.com --- I see. Is that something you think the wine project would be interested in investigating or is that just something way out of scope?
Also I have some more good news, the mod runs correctly on the more modern Steam version of Half-Life with your hack enabled.
Big thanks again for finding a way around this problem. Once upon a time, an older copy of cedega used to work just as well, so I wonder if they implemented some sort of similar hack.
https://bugs.winehq.org/show_bug.cgi?id=42907
--- Comment #29 from Zebediah Figura z.figura12@gmail.com --- (In reply to ganthore from comment #28)
I see. Is that something you think the wine project would be interested in investigating or is that just something way out of scope?
Probably the latter. It would require reverse-engineering Microsoft's heap implementation, which is to be avoided.
https://bugs.winehq.org/show_bug.cgi?id=42907
ganthore ganthore@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |WORKSFORME Status|UNCONFIRMED |RESOLVED
--- Comment #30 from ganthore ganthore@gmail.com --- Ugly hacks works. Makes me sad that there won't be a good way to make this part of the main wine code base, but it works for my needs, so I'll need to remember to always custom compile my copy of wine w/ this patch applied.
https://bugs.winehq.org/show_bug.cgi?id=42907
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|WORKSFORME |WONTFIX Status|RESOLVED |CLOSED
--- Comment #31 from Zebediah Figura z.figura12@gmail.com --- Nitpicking and closing.