http://bugs.winehq.org/show_bug.cgi?id=24028
Summary: WaitForInputIdle doesn't return for specific application (infinite loop?) Product: Wine Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: user32 AssignedTo: [email protected] ReportedBy: [email protected]
There is application called Injection Launcher that launches Ultima Online (game) client and then hacks it. When using Wine, Injection Launcher doesn't notice that client started.
Is uses something like: if (WaitForInputIdle(pi.hProcess, INFINITE) != 0) { api_error("Failed waiting for client window to open"); error_stage(STAGE_STARTCLIENT); return 0; }
This bug is present in Wine since "ever" and exists in git.
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #1 from Rafa³ Mi³ecki [email protected] 2010-08-16 12:17:57 --- Created an attachment (id=30179) --> (http://bugs.winehq.org/attachment.cgi?id=30179) Patch that adds some additional TRACEs for easier debugging hopefully
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #2 from Rafa³ Mi³ecki [email protected] 2010-08-16 12:18:38 --- Created an attachment (id=30180) --> (http://bugs.winehq.org/attachment.cgi?id=30180) WINEDEBUG="+msg,+event" wine ilaunch.exe
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #3 from Rafa³ Mi³ecki [email protected] 2010-08-16 12:21:38 --- Created an attachment (id=30181) --> (http://bugs.winehq.org/attachment.cgi?id=30181) WINEDEBUG="+msg,+event" wine ilaunch.exe | grep DBG
http://bugs.winehq.org/show_bug.cgi?id=24028
Rafa³ Mi³ecki [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #30180|text/plain |application/x-bzip2 mime type| |
http://bugs.winehq.org/show_bug.cgi?id=24028
Dmitry Timoshkov [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|user32 |-unknown
--- Comment #4 from Dmitry Timoshkov [email protected] 2010-08-16 23:42:15 --- Specify the Wine version you are using and provide a test case. If there is no test the bug will be closed as WONTTFIX (since this is for a crack).
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #5 from Rafa³ Mi³ecki [email protected] 2010-08-17 00:48:06 --- (In reply to comment #4)
Specify the Wine version you are using and provide a test case. If there is no test the bug will be closed as WONTTFIX (since this is for a crack).
As for version just read my description... :|
This bug is present in Wine since "ever" and exists in git.
Do you want exact commit? I checkouted source yesterday, got:
commit 277040d92454b7cc32d668b49a9bbf95df2796d6 Author: Alexandre Julliard [email protected] Date: Wed Aug 4 17:53:14 2010 +0200
d3dx9: Fix some incorrect const typecasts.
Can you explain why you find Injection Launcher a crack?! Do you consider every 3rd tool a crack just because it makes life easier? Injection Launcher let you easily switch beteween clients and shards by storing paths to clients and IPs of shards. Define "crack", please.
http://bugs.winehq.org/show_bug.cgi?id=24028
Jerome Leclanche [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected]
--- Comment #6 from Jerome Leclanche [email protected] 2010-08-17 02:18:36 --- (In reply to comment #5)
Can you explain why you find Injection Launcher a crack?! Do you consider every 3rd tool a crack just because it makes life easier? Injection Launcher let you easily switch beteween clients and shards by storing paths to clients and IPs of shards. Define "crack", please.
What Dmitry means is that, if you fail to provide a test case, devs might be less willing to help on an application that breaks some other random terms of services or what not.
http://bugs.winehq.org/show_bug.cgi?id=24028
Dmitry Timoshkov [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|unspecified |1.3.0
--- Comment #7 from Dmitry Timoshkov [email protected] 2010-08-17 05:17:59 --- (In reply to comment #0)
Is uses something like: if (WaitForInputIdle(pi.hProcess, INFINITE) != 0) { api_error("Failed waiting for client window to open"); error_stage(STAGE_STARTCLIENT); return 0; }
Have a look a the test attached to the bug 23940, it uses WaitForInputIdle() and works just fine. There is a bunch of WaitForInputIdle() tests in user32 as well.
Wine version should be specified in the Version field above, and could be easily seen in the output of 'wine --version'.
http://bugs.winehq.org/show_bug.cgi?id=24028
[email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected]
--- Comment #8 from [email protected] 2011-01-20 22:13:27 CST --- I can confirm this happening, at least for the Ultima Online client. But i dont think it is only for this program.
Injection is a third party tool for UO which uses a SetWindowHookEx approach to inject its dll into the client. So after calling CreateProcess, it first waits with WaitForInputIdle until the client is initialized by the pe-loader. That is, because injection hooks some IAT-entrys for controlling the client-server-data flow.
While i am not using Injection, i can confirm this for my own dll injector(which also hooks PeekMessage in IAT, for CPU-Reduction): When calling WaitForInputIdle with the INFINITE parameter, _sometimes_ the function hangs infinitely. The code still works though when using some "magic-delay", but thats not very elegant.
In the stated example code of bug 23940 there is no use of the INFINITE parameter so the 'bug' can't be reproduced there.
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #9 from [email protected] 2011-01-20 22:19:15 CST --- Sorry forgot to state:
Wine version: wine-1.0.1-174-gc4039bd
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #10 from Rafa³ Mi³ecki [email protected] 2011-01-21 02:04:40 CST --- (In reply to comment #8)
I can confirm this happening, at least for the Ultima Online client. But i dont think it is only for this program.
Could you provide tiny test-case starting for example notepad.exe? That could help developers find real issue, as it seems to be more complex issue (happens in specific conditions only).
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #11 from [email protected] 2011-01-21 07:02:14 CST --- Created an attachment (id=32926) --> (http://bugs.winehq.org/attachment.cgi?id=32926) WaitForInputIdle test
Here some testing code that should be able to reproduce the problem.
As i stated before: it only hangs _sometimes_; on my box like once in 10 tries.
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #12 from Dmitry Timoshkov [email protected] 2011-01-21 08:48:10 CST --- Perhaps +relay,+seh,+tid,+msg,+server log of a hanging attempt could shed some light.
http://bugs.winehq.org/show_bug.cgi?id=24028
Austin English [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, testcase
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #13 from [email protected] 2011-01-25 12:38:02 CST --- Okay then... the Debug-Flags you told me to use now created an 18 MB log of a hanging attempt.
As i am not very familiar with wine internals, i cannot find any reasons for WaitForInputIdle to hang.
If you could tell me which parts of the log are useful to you, i'd be pleased to upload them here.
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #14 from Dmitry Timoshkov [email protected] 2011-01-27 03:12:12 CST --- (In reply to comment #13)
Okay then... the Debug-Flags you told me to use now created an 18 MB log of a hanging attempt.
How large is it after 'bzip2 -9' ?
http://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #15 from [email protected] 2013-08-05 12:32:25 CDT --- This ticket has not been updated for over 900 days. Development recommends to check the status on your bug every release or two and let to be known if the bug is still present. If not, mark it fixed.
Is this still an issue with 1.7.0 or higher ?
https://bugs.winehq.org/show_bug.cgi?id=24028
[email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected], | |[email protected]
https://bugs.winehq.org/show_bug.cgi?id=24028
Anastasius Focht [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEEDINFO Summary|WaitForInputIdle doesn't |Injection Launcher for |return for specific |Ultima Online fails to |application (infinite |detect client start (use of |loop?) |WaitForInputIdle INFINITE | |sometimes doesn't return) Ever confirmed|0 |1
--- Comment #16 from Anastasius Focht [email protected] --- Hello folk,
last call: provide information with recent Wine versions.
If there is no response after certain time, the bug will be closed without further notice (abandon).
Regards
https://bugs.winehq.org/show_bug.cgi?id=24028
[email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected]
--- Comment #17 from [email protected] --- Last replys are year 2011.
https://bugs.winehq.org/show_bug.cgi?id=24028
[email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected], | |[email protected]
https://bugs.winehq.org/show_bug.cgi?id=24028
tokktokk [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected]
https://bugs.winehq.org/show_bug.cgi?id=24028
joaopa [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected]
--- Comment #18 from joaopa [email protected] --- Created attachment 68193 --> https://bugs.winehq.org/attachment.cgi?id=68193 Compiled test case
Bug does not occur with the compiled test case. No news since 9 years (yes 9) Can an administrator close this bug as ABANDONED?
https://bugs.winehq.org/show_bug.cgi?id=24028
[email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected]
--- Comment #19 from [email protected] --- (In reply to joaopa from comment #18)
Created attachment 68193 [details] Compiled test case
Bug does not occur with the compiled test case. No news since 9 years (yes 9) Can an administrator close this bug as ABANDONED?
the precompiled test case seems to work reliable. I got no hang on several tries wine 9.9.
https://bugs.winehq.org/show_bug.cgi?id=24028
Olivier F. R. Dierick [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |ABANDONED Status|NEEDINFO |RESOLVED CC| |[email protected]
--- Comment #20 from Olivier F. R. Dierick [email protected] --- Hello,
Abandoned.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=24028
--- Comment #21 from Austin English [email protected] --- Closing.
https://bugs.winehq.org/show_bug.cgi?id=24028
Austin English [email protected] changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #22 from Austin English [email protected] --- Actually closing.