https://bugs.winehq.org/show_bug.cgi?id=54037
Bug ID: 54037 Summary: user32:msg - test_SendMessage_other_thread() sometimes gets a todo success (GitLab CI) Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: user32 Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
user32:msg - test_SendMessage_other_thread() sometimes gets a todo success:
msg.c:19067: Test succeeded inside todo block: WaitForSingleObject failed, ret:0 msg.c:19091: Test succeeded inside todo block: wrong status 00000000
See https://test.winehq.org/data/patterns.html#user32:msg
This happens about once a month on the Debian VMs in the TestBot nightly WineTest runs, but is also known to impact the GitLab CI (e.g. MR!1596 MR!1519 ).
https://bugs.winehq.org/show_bug.cgi?id=54037
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source, testcase
https://bugs.winehq.org/show_bug.cgi?id=54037
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech@gmail.com, | |rbernon@codeweavers.com
https://bugs.winehq.org/show_bug.cgi?id=54037
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |madewokherd@gmail.com
--- Comment #1 from François Gouget fgouget@codeweavers.com --- The 'wrong status 0' unexpected success last happened on 2023-09-12. The 'WaitForSingleObject' unexpected success is still happening regularly however, including on the GitLab CI (the TestBot failed to recognize it for a while because of the additional thread_2).
msg.c:19713: Test succeeded inside todo block: thread_2: WaitForSingleObject failed, ret:0
https://bugs.winehq.org/show_bug.cgi?id=54037
--- Comment #2 from Esme Povirk madewokherd@gmail.com --- Documenting so I don't have to figure this out again:
There's an obvious race condition the SendMessage_thread_2 case. The thread calls SetParent immediately before a SendMessage. The expectation is that on Wine the foreground thread will wait for QS_SENDMESSAGE, wake (incorrectly) after the SetParent call, and then process one posted message from the queue, leaving the background thread stuck in its SendMessage call. However, if the background thread's SendMessage call happens before the foreground thread processes the posted message, the foreground thread will handle both posted messages in a single GetMessage call.
I don't think this test case is appropriate for testing that SetParent doesn't use an internal message on Windows.
https://bugs.winehq.org/show_bug.cgi?id=54037
Esme Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |886b778aaa13c5b36a6996c7610 | |5f5a80e97446e Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #3 from Esme Povirk madewokherd@gmail.com --- Replaced this with a simpler (and hopefully more robust) test.
https://bugs.winehq.org/show_bug.cgi?id=54037
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #4 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 9.0-rc1.