https://bugs.winehq.org/show_bug.cgi?id=52079
Bug ID: 52079 Summary: oleacc:main crashes randomly on Windows 10 1709+ Product: Wine Version: unspecified Hardware: x86-64 OS: Windows Status: NEW Severity: normal Priority: P2 Component: oleacc Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
oleacc:main crashes randomly on Windows 10 1709+ in both 32- and 64-bit:
main.c:1041: Test failed: V_VT(&v) = 0 main.c:1048: Test failed: V_VT(&v) = 0 main.c:1049: Test failed: V_DISPATCH(&v) = 0000000000000000 main.c:1049: this is the last test seen before the exception 1050:main: unhandled exception c0000005 at 0000000000401597 oleacc:main:1050 done (-1073741819) in 0s Test failed: crash (c0000005)
https://test.winehq.org/data/patterns.html#oleacc:main
Unsurprisingly a bisect shows that the tests started failing with the commit that introduced the test:
commit 1a3db363c6b4065af532a8db1e6309be753b1781 Author: Connor McAdams cmcadams@codeweavers.com Date: Mon Sep 20 18:03:31 2021 +0200
oleacc: Add Client_get_accFocus tests.
Signed-off-by: Connor McAdams cmcadams@codeweavers.com Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
At the time the crash happened after line 1037 which points to line 1039 as a likely culprit: 1032 /* Set focus to each child window. */ 1033 SetFocus(btn); 1034 hr = IAccessible_get_accFocus(acc, &v); 1035 ok(hr == S_OK, "hr %#x\n", hr); 1036 ok(V_VT(&v) == VT_DISPATCH, "V_VT(&v) = %d\n", V_VT(&v)); 1037 ok(V_DISPATCH(&v) != NULL, "V_DISPATCH(&v) = %p\n", V_DISPATCH(&v)); 1038 1039 hr = IDispatch_QueryInterface(V_DISPATCH(&v), &IID_IOleWindow, (void**)&ow); 1040 ok(hr == S_OK, "got %x\n", hr);
That call has been moved to _check_acc_hwnd() and so the crash now happens in the first QueryInterface() call in that function:
hr = IUnknown_QueryInterface(unk, &IID_IOleWindow, (void**)&ow); called from check_acc_hwnd((IUnknown*)V_DISPATCH(&v), btn);
https://bugs.winehq.org/show_bug.cgi?id=52079
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression, source, | |testcase Regression SHA1| |1a3db363c6b4065af532a8db1e6 | |309be753b1781
https://bugs.winehq.org/show_bug.cgi?id=52079
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Fixed by SHA1| |67b43b58bd7a142320464895ec1 | |9f30035e0d29e Resolution|--- |FIXED
--- Comment #1 from François Gouget fgouget@codeweavers.com --- This is fixed.
I suspect multiple commits contributed to the fix because the test stopped crashing on win1909_cw-gtx560 and win1909_cx-rx460 on 2022-04-23. But it also started crashing in Wine a bit earlier (2022-03-17), and also on win2009_cw-rx460 on 2022-03-25 and last crashed anywhere on 2022-03-25. That last part points to this commit putting the last nail in the coffin.
commit 67b43b58bd7a142320464895ec19f30035e0d29e Author: Piotr Caban piotr@codeweavers.com Date: Sun Mar 27 14:16:31 2022 +0200
oleacc/tests: Fix crash when current thread is not in foreground state.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52079 Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=52079
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #2 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 7.8.