https://bugs.winehq.org/show_bug.cgi?id=54594
Bug ID: 54594 Summary: dinput:device8 - test_dik_codes() sometimes gets timeouts on the GitLab CI Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: dinput Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
dinput:device8 - test_dik_codes() sometimes gets timeouts on the GitLab CI.
MR2265 & MR2288: device8.c:2182: Test failed: 0x800: lang 0x409: key 0x51, dik 0x10: WaitForSingleObject returned 0x102
MR1714 & MR2185: device8.c:2182: Test failed: 0x800: lang 0x409: key 0x52, dik 0x13: WaitForSingleObject returned 0x102
MR2133: device8.c:2182: Test failed: 0x800: lang 0x409: key 0x54, dik 0x14: WaitForSingleObject returned 0x102
MR2254: device8.c:2182: Test failed: 0x800: lang 0x409: key 0x59, dik 0x15: WaitForSingleObject returned 0x102
The oldest known instance happened on 2023-02-16 (MR2185) so this issue may be pretty recent.
This issue never happened in the nightly WineTest runs. It's possible it only happens when the load on the machine running the tests is too high. That would make sense given that the timeouts from from a WaitForSingleObject() call with a 100 ms timeout.
One option would be to simply increase the timeout. Yet that timeout seemed sufficient until mid February. So why is it no longer the case?
https://bugs.winehq.org/show_bug.cgi?id=54594
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source, testcase CC| |rbernon@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=54594
--- Comment #1 from Rémi Bernon rbernon@codeweavers.com --- I suspect some of the refactoring I made recently regarding dinput worker thread and keyboard events could have regressed this. I'm unable to reproduce locally so far, though I haven't spent much time on it.
https://bugs.winehq.org/show_bug.cgi?id=54594
--- Comment #2 from Rémi Bernon rbernon@codeweavers.com --- I can finally reproduce it locally, and I believe that it is a race condition in fvwm. The WM sends WM_TAKE_FOCUS messages to us, with some timestamp to use for the reply, but quickly after calls XSetInputFocus on its own desktop window with CurrentTime.
Depending on how quickly we reply to the WM_TAKE_FOCUS message, this ends up with fvwm stealing our focus and we get a FocusOut even right after the FocusIn event. We then set focus to desktop, as we should, and wineserver stops sending input to the dinput messages window.
https://bugs.winehq.org/show_bug.cgi?id=54594
Rémi Bernon rbernon@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |3fad9cac5bd9ee69e0f1d37881a | |af8f4c6fc40ba Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #3 from Rémi Bernon rbernon@codeweavers.com --- I've marked the tests as flaky to workaround the problem in 3fad9cac5bd9ee69e0f1d37881aaf8f4c6fc40ba.
https://bugs.winehq.org/show_bug.cgi?id=54594
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #4 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.6.