https://bugs.winehq.org/show_bug.cgi?id=48045
Bug ID: 48045 Summary: comdlg32:filedlg crashes or times out randomly Product: Wine Version: unspecified Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P2 Component: comdlg32 Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
Created attachment 65586 --> https://bugs.winehq.org/attachment.cgi?id=65586 comdlg32:filedlg: Traces to debug random crash / timeouts.
comdlg32:filedlg crashes randomly on all Windows versions from Vista to Windows 8 while Windows 10 (at least 1507, 1709 and 1809) gets random timeouts.
https://test.winehq.org/data/tests/comdlg32:filedlg.html
When successful comdlg32:filedlg does not print much so the standard reports are pretty much useless to spot the place where the test gets stuck on Windows 10, assuming it gets stuck in a specific place rather than just being slow.
As for the crashes, they don't trigger the tests exc_filter() so there is no indication of the last successful ok() call. Turning on 'Report successful tests' may be preventing the crash (or these runs just got lucky).
It's possible to reproduce the crash while adding the traces in the attached patch. This is not entirely fruitful as the crashes don't seem to always happen in the same place. test_extension() is the place where most issues happen though:
https://testbot.winehq.org/JobDetails.pl?Key=59060 -> wvistau64: Crash in test_extension(). Based on the test_extension_helper() traces, it happened in the loop with i=1 so for "TestFilter (*.abc;)\0*.abc;\0".
https://testbot.winehq.org/JobDetails.pl?Key=59086 -> w2008s64+exe: Crash on or after test_extension() return
https://testbot.winehq.org/JobDetails.pl?Key=59088 -> wvistau64+exe: Crash in test_DialogCancel()
https://testbot.winehq.org/JobDetails.pl?Key=59091 -> wvistau64_fr: Spent 39s in test_null_filename() but no timeout
https://testbot.winehq.org/JobDetails.pl?Key=59139 -> wvistau64: Crash in test_null_filename() -> wvistau64_fr: Timeout in test_extension() filedlg.c:1048: filter=[TestFilter (*.ab?) lpstrDefExt=NULL]
https://testbot.winehq.org/JobDetails.pl?Key=59151 -> wvistau64: Crash in test_extension() filedlg.c:1048: filter=[TestFilter (*.abc.def)] -> wvistau64_fr: Timeout in or after test_mru() filedlg.c:637: 19 test_ok filedlg.c:904: 29 test_getfolderpath filedlg.c:986: 30 test_mru -> w1064v1809_zh_CN: Two failures in test_extension() filedlg.c:1053: Test failed: TestFilter (*.pt*;*.abc): expected TRUE filedlg.c:1059: Test failed: TestFilter (*.pt*;*.abc): Filename is deadbeef, expected deadbeef.xyz
Memory corruption, maybe happening quite early in the test?