https://bugs.winehq.org/show_bug.cgi?id=39148
Bug ID: 39148 Summary: Guild Wars 2: Hangs on Close Product: Wine Version: 1.7.50 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: soulhuntor@gmail.com Distribution: ---
Guild Wars 2: Hangs on Close
Starting with 1.7.50 when trying to close Guild Wars 2 the program looks like it closes but the Gw2.exe is still running.
https://bugs.winehq.org/show_bug.cgi?id=39148
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression CC| |gyebro69@gmail.com
--- Comment #1 from Béla Gyebrószki gyebro69@gmail.com --- Please run a regression test to find out which commit broke it. http://wiki.winehq.org/RegressionTesting
Also attach terminal output: http://wiki.winehq.org/FAQ#get_log
https://bugs.winehq.org/show_bug.cgi?id=39148
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |piotr@codeweavers.com Component|-unknown |ntdll Summary|Guild Wars 2: Hangs on |Guild Wars and Guild Wars 2 |Close |don't exit properly Ever confirmed|0 |1 Regression SHA1| |18d9ca872a2c63ab1ba992d6d52 | |7758f29d141bd
--- Comment #2 from Béla Gyebrószki gyebro69@gmail.com --- This regression affects the original Guild Wars too (that was bug #39154).
After exiting the game this line appears in the terminal and the game executable remains in the process list until I kill it: err:ntdll:RtlpWaitForCriticalSection section 0x7dc1ce00 "window.c: win_data_section" wait timed out in thread 0032, blocked by 0036, retrying (60 sec)
The regression was introduced by
commit 18d9ca872a2c63ab1ba992d6d527758f29d141bd Author: Piotr Caban piotr@codeweavers.com Date: Tue Aug 11 19:21:57 2015 +0200
ntdll: Fix modules order in InInitializationOrderModuleList.
Reverting the commit fixes the problem.
wine-1.7.50-53-gbdaa571c5 Fedora 22 32-bit
https://bugs.winehq.org/show_bug.cgi?id=39148
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sworddragon2@aol.com
--- Comment #3 from Béla Gyebrószki gyebro69@gmail.com --- *** Bug 39154 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=39148
--- Comment #4 from Béla Gyebrószki gyebro69@gmail.com --- Created attachment 52186 --> https://bugs.winehq.org/attachment.cgi?id=52186 plain terminal output
https://bugs.winehq.org/show_bug.cgi?id=39148
--- Comment #5 from Béla Gyebrószki gyebro69@gmail.com --- Created attachment 52187 --> https://bugs.winehq.org/attachment.cgi?id=52187 +module,+loaddll,+imports,+tid log (uncompressed 1.3 MB)
https://bugs.winehq.org/show_bug.cgi?id=39148
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #52187|0 |1 is obsolete| |
--- Comment #6 from Béla Gyebrószki gyebro69@gmail.com --- Created attachment 52191 --> https://bugs.winehq.org/attachment.cgi?id=52191 +module,+loaddll,+imports,+tid log
The same log with a pre-booted prefix to get rid of the noise generated by wineboot.
https://bugs.winehq.org/show_bug.cgi?id=39148
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.gamershell.com/d | |ownload_70000.shtml
--- Comment #7 from Béla Gyebrószki gyebro69@gmail.com --- You may want to try out Dragon Age II demo (1.9 GB download size): http://www.gamershell.com/download_70000.shtml
On my system both Dragon Age:Origins and Dragon Age II are affected by this regression: the games crash on exit with a segmentation fault: XIO: fatal IO error 11 (Resource temporarily unavailable) on X server "�]}" after 1996 requests (1995 known processed) with 0 events remaining. *** Error in `DragonAge2Demo.exe': corrupted double-linked list: 0x7d510310 *** ======= Backtrace: ========= ... and here comes a long list of modules and memory addresses.
Reverting the commit fixes the crash in the Dragon Age games for me.
To reproduce the issue in DA 2 demo: install the demo (I selected express installation), start the game with ../bin_ship/DragonAge2Demo.exe, select <Quit Demo> in the main menu.
https://bugs.winehq.org/show_bug.cgi?id=39148
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |piotr.caban@gmail.com
--- Comment #8 from Piotr Caban piotr.caban@gmail.com --- The error in Dragon Age demo is caused by DestroyWindow call in imm32.dll when winex11.drv has already received THREAD_DETACH. One solution is to avoid DestroyWindow calls in imm32 DETACH_THREAD but there still may be an application that will not work.
It's possible to write following program to demonstrate the problem when only user32.dll is used. It will look like this: test.exe source: int main() { LoadLibrary(L"user32.dll"); HMODULE test = LoadLibrary(L"test_dll.dll"); HANDLE thread = CreateThread(0, 0, thread_proc, 0, 0, 0); WaitForSingleObject(thread, INFINITE); return 0; }
test_dll.dll source: BOOL DllMain(HMODULE module, DWORD reason, void *res) { switch (ul_reason_for_call) { case DLL_THREAD_ATTACH: user = LoadLibraryA("user32.dll"); pCreateWindowExA = GetProcAddress(user, "CreateWindowExA"); pDestroyWindow = GetProcAddress(user, "DestroyWindow");
win = pCreateWindowExA(0, "button", "button", WS_VISIBLE|WS_POPUP, 10, 10, 100, 100, 0, 0, 0, 0); break; case DLL_THREAD_DETACH: pDestroyWindow(win); FreeLibrary(user); break; case DLL_PROCESS_DETACH: break; } return TRUE; } In this case winex11drv.dll is unloaded first, test_dll next and then user32. I don't know yet how to fix it, maybe it will be acceptable to add a driver_detach driver call and instead of cleaning everything in winex11drv.dll->DllMain(THREAD_DETACH) doing it in user32.dll->DllMain(THREAD_DETACH)->driver_detach?
https://bugs.winehq.org/show_bug.cgi?id=39148
--- Comment #9 from Piotr Caban piotr.caban@gmail.com --- This should be fixed now (commit 60b996ad4b46be7c50784d4a0382060845893b85). Please retest.
https://bugs.winehq.org/show_bug.cgi?id=39148
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |60b996ad4b46be7c50784d4a038 | |2060845893b85 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #10 from Béla Gyebrószki gyebro69@gmail.com --- Fixed indeed, thanks Piotr for fixing this quickly.
wine-1.7.50-156-gd317750
https://bugs.winehq.org/show_bug.cgi?id=39148
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #11 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.51.
https://bugs.winehq.org/show_bug.cgi?id=39148
Chris Y. emailofchris@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |emailofchris@gmail.com
--- Comment #12 from Chris Y. emailofchris@gmail.com --- This is happening to me with Guild Wars 2. However, unlike soulhuntor's original description, it doesn't appear to close, it just freezes, and I have to switch to a TTY and use htop to kill it. I'm using Wine 3.0 with a 64-bit default prefix on Solus, with launch options "-autologin -dx9single", and playing in fullscreen.
https://bugs.winehq.org/show_bug.cgi?id=39148
--- Comment #13 from Chris Y. emailofchris@gmail.com --- Created attachment 60439 --> https://bugs.winehq.org/attachment.cgi?id=60439 Terminal output from launching GW2 and attempting to exit
Here's the terminal output. I had to switch to a TTY to terminate the process at the end.
https://bugs.winehq.org/show_bug.cgi?id=39148
--- Comment #14 from Chris Y. emailofchris@gmail.com --- Forgot to mention, if I have it in Windowed or Windowed Fullscreen instead of Fullscreen, it's easier to kill the process as it doesn't cover everything up, so I can use System Monitor instead without having to switch TTYs and log in there.
https://bugs.winehq.org/show_bug.cgi?id=39148
--- Comment #15 from Chris Y. emailofchris@gmail.com --- Disregard my previous comments. The issue was Gallium Nine. It exits fine without Gallium Nine enabled.