http://bugs.winehq.org/show_bug.cgi?id=32451
Bug #: 32451 Summary: Cannot install the witcher enhanced edition from GOG (installation freeze) Product: Wine Version: 1.5.19 Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: bigjohnaumic@yahoo.fr Classification: Unclassified
Created attachment 42811 --> http://bugs.winehq.org/attachment.cgi?id=42811 log file
The installation process is freezing at about a third.
There is a popup with nothing written inside and 4 buttons : 'ok', 'cancel', 'abort', '???' (I can't see the last it's cut and the window is not resizable). No matter which button I click on the result is the same : it does nothing. I have then to quit the installation (ctrl-c).
I use a fresh 32bit prefix (with winetricks d3dx9_36 d3dx9_43 vcrun2005).
I use the installer in 7 parts (one .exe and six .bin)
http://bugs.winehq.org/show_bug.cgi?id=32451
--- Comment #1 from Alex bigjohnaumic@yahoo.fr 2012-12-14 23:48:17 CST --- I have run the file integrity check before the installation : it is OK. I tried in a new prefix without "winetricks d3dx9_36 d3dx9_43 vcrun2005" : I have the same issue.
http://bugs.winehq.org/show_bug.cgi?id=32451
--- Comment #2 from Alex bigjohnaumic@yahoo.fr 2012-12-15 00:38:51 CST --- just before the freeze, a line like this appears in the console output : fixme:win:alloc_winproc too many winprocs, cannot allocate one for 0xXXXX
http://bugs.winehq.org/show_bug.cgi?id=32451
jenden0+wine@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jenden0+wine@gmail.com
--- Comment #3 from jenden0+wine@gmail.com 2012-12-15 07:14:19 CST --- I'm seeing this same thing. This happens with both 1.5.18 as well as the last version with good test results (1.5.8).
My console log looks identical to the attached (I can generate a clean one and post it if necessary).
http://bugs.winehq.org/show_bug.cgi?id=32451
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Installer
http://bugs.winehq.org/show_bug.cgi?id=32451
--- Comment #4 from Alex bigjohnaumic@yahoo.fr 2012-12-15 23:03:01 CST --- Here is a workaround to install the game : use the /nogui option.
WINEPREFIX=/my/wine/prefix wine setup_the_witcher_enhanced_edition_2.0.0.12.exe /nogui
http://bugs.winehq.org/show_bug.cgi?id=32451
Rixa rixa@cs.tut.fi changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rixa@cs.tut.fi
--- Comment #5 from Rixa rixa@cs.tut.fi 2013-02-02 03:17:56 CST --- The GOG.com version of The Bard's Tale appears to be affected by this same issue. The same workaround works.
http://bugs.winehq.org/show_bug.cgi?id=32451
David Shaw dj.shaw@btconnect.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dj.shaw@btconnect.com
--- Comment #6 from David Shaw dj.shaw@btconnect.com 2013-02-22 09:01:02 CST --- Also affects the GOG.com version of Neverwinter Nights II. Same workaround works OK.
http://bugs.winehq.org/show_bug.cgi?id=32451
Xavier Vachon xvachon@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xvachon@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=32451
Kevin Meyer billy65bob@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |billy65bob@gmail.com
--- Comment #7 from Kevin Meyer billy65bob@gmail.com 2013-06-27 22:51:50 CDT --- Just ran into this one with the Witcher.
The game appears to still install fully in the background, even if GoG's gui locks up partway through.
http://bugs.winehq.org/show_bug.cgi?id=32451
David Shaw dj.shaw@btconnect.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|dj.shaw@btconnect.com |
http://bugs.winehq.org/show_bug.cgi?id=32451
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |focht@gmx.net Component|-unknown |user32 Summary|Cannot install the witcher |Multiple GOG.com installer |enhanced edition from GOG |bundles show a |(installation freeze) |broken/unresponsive dialog | |window during installation | |(process running of wndproc | |slots) Ever Confirmed|0 |1
--- Comment #8 from Anastasius Focht focht@gmx.net 2013-10-04 11:37:36 CDT --- Hello folks,
confirming, affects multiple GOG.com installer bundles. The problem seems to be that one sub-installer process runs of winproc slots as indicated by "fixme:win:alloc_winproc too many winprocs, cannot allocate one" messages.
Attaching debugger during install and setting a breakpoint on alloc_winproc gives:
--- snip --- Wine-dbg>info thread process tid prio (all id:s are in hex) ... 0000002a setup_nwn2_complete_2.1.0.6.exe 0000002b 0 0000002c (D) C:\users\focht\Temp\is-K7HIQ.tmp\setup_nwn2_complete_2.1.0.6.tmp 0000002d 0 <== ... Wine-dbg>info share Module Address Debug info Name (125 modules) PE 400000- 537000 Export setup_nwn2_complete_2.1.0.6.tmp PE 7b0000- 7c5000 Export innocallback PE 7d0000- 7ea000 Export gameuxinstallhelper PE 7f0000- 805000 Export crcdll PE 810000- 81e000 Export botva2 PE 10000000-10014000 Export get_hw_caps ... Backtrace: =>0 0x7e9b66a8 alloc_winproc(func=0xdd6db68, unicode=0) [/home/focht/projects/wine/wine-git/dlls/user32/winproc.c:146] in user32 (0x0032ecb8) 1 0x7e97b5c3 SetTimer+0x3b(hwnd=0x40022, id=0x1, timeout=0x64, proc=0xdd6db68) [/home/focht/projects/wine/wine-git/dlls/user32/message.c:4405] in user32 (0x0032ed7c) 2 0x00498872 in setup_nwn2_complete_2.1.0.6.tmp (+0x98871) (0x0032ed98) 3 0x0049a75e in setup_nwn2_complete_2.1.0.6.tmp (+0x9a75d) (0x0032ef1c) 4 0x004a0442 in setup_nwn2_complete_2.1.0.6.tmp (+0xa0441) (0x0032ef6c) 5 0x00493a96 in setup_nwn2_complete_2.1.0.6.tmp (+0x93a95) (0x0032f01c) 6 0x004928d7 in setup_nwn2_complete_2.1.0.6.tmp (+0x928d6) (0x0032f068) 7 0x0049db95 in setup_nwn2_complete_2.1.0.6.tmp (+0x9db94) (0x0032f0d4) 8 0x0049d63f in setup_nwn2_complete_2.1.0.6.tmp (+0x9d63e) (0x0032f108) 9 0x7e9b6a53 call_window_proc+0xcc(hwnd=0x40022, msg=0x113, wp=0x1, lp=0x134feeb, result=0x32f178, arg=0xdd6ab4c) [/home/focht/projects/wine/wine-git/dlls/user32/winproc.c:244] in user32 (0x0032f148) 10 0x7e9b8deb CallWindowProcA+0xe8(func=0xffff0c1d, hwnd=0x40022, msg=0x113, wParam=0x1, lParam=0x134feeb) [/home/focht/projects/wine/wine-git/dlls/user32/winproc.c:959] in user32 (0x0032f188) ... Backtrace: =>0 0x7e9b66a8 alloc_winproc(func=0xdd70b88, unicode=0) [/home/focht/projects/wine/wine-git/dlls/user32/winproc.c:146] in user32 (0x0032ecb8) 1 0x7e97b5c3 SetTimer+0x3b(hwnd=0x40022, id=0x1, timeout=0x64, proc=0xdd70b88) [/home/focht/projects/wine/wine-git/dlls/user32/message.c:4405] in user32 (0x0032ed7c) 2 0x00498872 in setup_nwn2_complete_2.1.0.6.tmp (+0x98871) (0x0032ed98) 3 0x0049a75e in setup_nwn2_complete_2.1.0.6.tmp (+0x9a75d) (0x0032ef1c) 4 0x004a0442 in setup_nwn2_complete_2.1.0.6.tmp (+0xa0441) (0x0032ef6c) 5 0x00493a96 in setup_nwn2_complete_2.1.0.6.tmp (+0x93a95) (0x0032f01c) 6 0x004928d7 in setup_nwn2_complete_2.1.0.6.tmp (+0x928d6) (0x0032f068) 7 0x0049db95 in setup_nwn2_complete_2.1.0.6.tmp (+0x9db94) (0x0032f0d4) 8 0x0049d63f in setup_nwn2_complete_2.1.0.6.tmp (+0x9d63e) (0x0032f108) 9 0x7e9b6a53 call_window_proc+0xcc(hwnd=0x40022, msg=0x113, wp=0x1, lp=0x1354b61, result=0x32f178, arg=0xdd6db68) [/home/focht/projects/wine/wine-git/dlls/user32/winproc.c:244] in user32 (0x0032f148) 10 0x7e9b8deb CallWindowProcA+0xe8(func=0xffff0c1e, hwnd=0x40022, msg=0x113, wParam=0x1, lParam=0x1354b61) [/home/focht/projects/wine/wine-git/dlls/user32/winproc.c:959] in user32 (0x0032f188) ... --- snip ---
The app continuously registers a 100ms timer with id=1 and _different_ timer callback each time. This appears to be part of an installer progress update handler:
--- snip --- ... 0027:Call oleaut32.SysAllocStringLen(0032de24 L"INSTALLER_GOGPACKNWN2COMPLETE_PROGRESS_%3.0f",0000002c) ret=00405f48 0027:Ret oleaut32.SysAllocStringLen() retval=00165134 ret=00405f48 ... 0027:Call KERNEL32.GlobalAlloc(00000002,00002000) ret=007b5733 0027:Ret KERNEL32.GlobalAlloc() retval=05fcf01a ret=007b5733 0027:Call KERNEL32.GlobalLock(05fcf01a) ret=007b5739 0027:Ret KERNEL32.GlobalLock() retval=06045640 ret=007b5739 0027:Call KERNEL32.VirtualAlloc(04df0000,00004000,00001000,00000004) ret=007b161a 0027:Ret KERNEL32.VirtualAlloc() retval=04df0000 ret=007b161a 0027:Call KERNEL32.VirtualProtect(04df0574,0000001f,00000040,0032ed04) ret=007bcb4f 0027:Ret KERNEL32.VirtualProtect() retval=00000001 ret=007bcb4f 0027:Call KERNEL32.GlobalHandle(06045640) ret=007b575e 0027:Ret KERNEL32.GlobalHandle() retval=05fcf01a ret=007b575e 0027:Call KERNEL32.GlobalUnlock(05fcf01a) ret=007b5765 0027:Ret KERNEL32.GlobalUnlock() retval=00000000 ret=007b5765 0027:Call KERNEL32.GlobalFree(05fcf01a) ret=007b576a 0027:Ret KERNEL32.GlobalFree() retval=00000000 ret=007b576a 0027:Call KERNEL32.GetLastError() ret=004a0447 0027:Ret KERNEL32.GetLastError() retval=00000000 ret=004a0447 0027:Call user32.SetTimer(000200ce,00000001,00000064,04df0574) ret=00498872 0027:trace:win:alloc_winproc allocated 0xffff0181 for A 0x4df0574 (386/4096 used) 0027:Ret user32.SetTimer() retval=00000001 ret=00498872 ... 0027:Ret window proc 0x4deffcc (hwnd=0x200ce,msg=WM_TIMER,wp=00000001,lp=0147791e) retval=00000000 ... 0027:Call window proc 0x4df0574 (hwnd=0x200ce,msg=WM_TIMER,wp=00000001,lp=0147798d) ... 0027:Call user32.KillTimer(000200ce,00000001) ret=00498872 0027:Ret user32.KillTimer() retval=00000001 ret=00498872 ... --- snip ---
The code that allocates the timer callback is located in 0x007b0000 range which maps to "innocallback.dll". A bit of research reveals this is the "InnoCallback" library from http://www.sherlocksoftware.org/page.php?id=55
The library exports a function "wrapcallback" to allow creating stdcall-style callbacks (dynamically allocated thunks) for use with win32 API.
Wine SetTimer() allocates a new slot each time it sees a different wndproc. With a rate of 10 wndproc/s and 4096 slots it takes ~7 mins until the process runs out of wndproc slots. For large installers this will almost be the case.
This is why the dialog window looks so strange and doesn't respond to mouse clicks. Windows probably doesn't have this artificial 4096 winproc slots limitation.
Source: http://source.winehq.org/git/wine.git/blob/7c7fa1051c31b93729c5d299a96b9ee8d...
--- snip --- 48 #define MAX_WINPROCS 4096 ... 67 static WINDOWPROC winproc_array[MAX_WINPROCS] = 68 { ... 82 }; --- snip ---
For testing I raised the limit to 16K slots and it lets the Neverwinter Nights II installer succeed. 16K slots gives GOG.com installer bundles ~27 mins which should be sufficient.
$ wine --version wine-1.7.3-205-g5451a1e
Regards
http://bugs.winehq.org/show_bug.cgi?id=32451
--- Comment #9 from Kevin Meyer billy65bob@gmail.com 2013-10-05 01:13:55 CDT --- As I mentioned previously, installation still succeeds, even though the GUI locks up partway through. At least this was the case for The Witcher; I don't know if NWN2 gives you CD keys you need to enter manually or something like that at the end...
In any event, I think more research needs to be done on how Windows handles wndprocs slots. It doesn't seem too far-fetched to presume that the callback is freed once the timer expires, or when KillTimer is called to cleanup.
http://bugs.winehq.org/show_bug.cgi?id=32451
Christopher Larson kergoth@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |kergoth@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=32451
Hartmut Figge h.figge@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |h.figge@gmx.de
--- Comment #10 from Hartmut Figge h.figge@gmx.de --- I have just run into this issue with GOG/The Witcher under wine-1.7.8. Thanks for mentioning /nogui :)
http://bugs.winehq.org/show_bug.cgi?id=32451
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |roland@mxchange.org
--- Comment #11 from Anastasius Focht focht@gmx.net --- *** Bug 35352 has been marked as a duplicate of this bug. ***
http://bugs.winehq.org/show_bug.cgi?id=32451
--- Comment #12 from Roland Haeder roland@mxchange.org --- Sorry to report same problem twice, I didn't found this one.
http://bugs.winehq.org/show_bug.cgi?id=32451
Adam Bolte abolte@systemsaviour.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |abolte@systemsaviour.com
http://bugs.winehq.org/show_bug.cgi?id=32451
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gyebro69@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=32451
paulo i30817@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |i30817@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=32451
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |maiktapwagner@aol.com
--- Comment #13 from Anastasius Focht focht@gmx.net --- *** Bug 37033 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=32451
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Multiple GOG.com installer |Multiple GOG.com installer |bundles show a |bundles show a |broken/unresponsive dialog |broken/unresponsive dialog |window during installation |window during installation |(process running of wndproc |(installer process running |slots) |out of wndproc slots)
https://bugs.winehq.org/show_bug.cgi?id=32451
ax 34noff otaku@rambler.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |otaku@rambler.ru
https://bugs.winehq.org/show_bug.cgi?id=32451
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #14 from Béla Gyebrószki gyebro69@gmail.com --- Still present in 1.7.38
The patch from wine-staging increases the max. allowed winproc slots to 16384 which should be sufficient in all cases: https://github.com/wine-compholio/wine-staging/blob/master/patches/user32-Wn...
https://bugs.winehq.org/show_bug.cgi?id=32451
b.barwich@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |b.barwich@hotmail.com
--- Comment #15 from b.barwich@hotmail.com --- I suffered the same problem. Although the installer crashes the installation is actually ok and the game can be run.
But the solution that there is a simplified installer version built in that is enabled with "/nogui"
$ wine setup_nwn2_complete_spanish_2.1.0.6.exe /nogui
this installer version completes without problems.
https://bugs.winehq.org/show_bug.cgi?id=32451
ghutzl@gmx.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ghutzl@gmx.de
--- Comment #16 from ghutzl@gmx.de --- I have just tested the witcher enhanced edition from gog.com and the installation completed successfully.
Linux Distro: gentoo 64bit wine version 1.7.39
Looks like the bug has been fixed.
https://bugs.winehq.org/show_bug.cgi?id=32451
--- Comment #17 from Anastasius Focht focht@gmx.net --- Hello folks,
--- quote --- I have just tested the witcher enhanced edition from gog.com and the installation completed successfully.
Linux Distro: gentoo 64bit wine version 1.7.39
Looks like the bug has been fixed. --- quote ---
that distro ships Wine-Staging by default which includes a fix for this problem.
Bugs are resolved as 'fixed' here when they are fixed in *mainline* Wine.
Please explicitly state you're using a patched Wine version in future to avoid confusing users and developers. This applies to any bug you comment on.
Thanks.
Regards
https://bugs.winehq.org/show_bug.cgi?id=32451
NP-Hardass np.hardass@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |np.hardass@gmail.com
--- Comment #18 from NP-Hardass np.hardass@gmail.com --- (In reply to Anastasius Focht from comment #17)
that distro ships Wine-Staging by default which includes a fix for this problem.
Bugs are resolved as 'fixed' here when they are fixed in *mainline* Wine.
Please explicitly state you're using a patched Wine version in future to avoid confusing users and developers. This applies to any bug you comment on.
Thanks.
Regards
Gentoo maintainer here. We ship vanilla wine, but have the ability to use staging by toggling a flag during the package installation process. We also give a warning to the users that using wine-staging means that they should not post to WineHQ for help without having tested the issue without staging. Exact text:
"Applying the unofficial Wine-Staging patchset which is unsupported by Wine developers. Please don't report bugs to Wine bugzilla unless you can reproduce them with USE=-staging"
If you think there is a better way to handle informing users, feel free to contact me to discuss it.
https://bugs.winehq.org/show_bug.cgi?id=32451
--- Comment #19 from Anastasius Focht focht@gmx.net --- Hello NP-Hardass,
I'm fine with the explicit warning at build time. I had the impression a few times that users still report/comment without explicitly mention this fact.
Since I know this bug is definitely not fixed in mainline and the ebuild:
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/app-emulation/wine/...
I deduced it must have been Wine-Staging, but alas, I could be wrong and it worked just by chance for the user.
Regards
https://bugs.winehq.org/show_bug.cgi?id=32451
--- Comment #20 from ghutzl@gmx.de --- Hello Guys!
I apologize for the confusion I have caused. Indeed I am using wine-staging and therefore I might not see this bug. I am pretty sure I have read the warning about staging during the build but I simply forgot about it. So I think gentoo devs are doing the right thing but users like me should be more careful. I promise I will do so in the future.
https://bugs.winehq.org/show_bug.cgi?id=32451
Michael Müller michael@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |STAGED CC| |michael@fds-team.de, | |sebastian@fds-team.de Staged patchset| |https://github.com/wine-com | |pholio/wine-staging/tree/ma | |ster/patches/user32-WndProc
https://bugs.winehq.org/show_bug.cgi?id=32451
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |piotr.caban@gmail.com
--- Comment #21 from Piotr Caban piotr.caban@gmail.com --- The bug should be fixed by following commit: c9ae38e4c77023eeb3e3bd49dd4506943e19d37e
Please retest with current git wine or with wine 1.9.6 when it's out.
https://bugs.winehq.org/show_bug.cgi?id=32451
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|STAGED |RESOLVED Fixed by SHA1| |c9ae38e4c77023eeb3e3bd49dd4 | |506943e19d37e Resolution|--- |FIXED
--- Comment #22 from Piotr Caban piotr.caban@gmail.com --- Marking as fixed.
https://bugs.winehq.org/show_bug.cgi?id=32451
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #23 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.9.9.
https://bugs.winehq.org/show_bug.cgi?id=32451
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mstefani@redhat.com Target Milestone|--- |1.8.x
https://bugs.winehq.org/show_bug.cgi?id=32451
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.8.x |---
--- Comment #24 from Michael Stefaniuc mstefani@redhat.com --- Removing 1.8.x milestone from bugs included in 1.8.3.
https://bugs.winehq.org/show_bug.cgi?id=32451
nbacquia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nbacquia@gmail.com