https://bugs.winehq.org/show_bug.cgi?id=53988
Bug ID: 53988 Summary: wininet:http sometimes unexpectedly gets INTERNET_STATUS_RESOLVING_NAME status Product: Wine Version: unspecified Hardware: x86-64 OS: Windows Status: NEW Severity: normal Priority: P2 Component: wininet Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com
wininet:http sometimes unexpectedly gets INTERNET_STATUS_RESOLVING_NAME status.
For instance on 2022-11-23 on w1064v1507-32:
http.c:5694: Testing InternetReadFileExW with IRF_NO_WAIT flag... http.c:5781: Testing InternetQueryDataAvailable... http.c:376: Test failed: unexpected status 10 (INTERNET_STATUS_RESOLVING_NAME) http.c:376: Test failed: unexpected status 11 (INTERNET_STATUS_NAME_RESOLVED) http.c:376: Test failed: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:5353: Test failed: expected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) 1 times, received 2 times ... http.c:596: Starting InternetReadFile test with flags 0x10000000 on url http://test.winehq.org/tests/post.php http.c:644: Test failed: expected status 10 (INTERNET_STATUS_RESOLVING_NAME) 0 times, received 1 times http.c:645: Test failed: expected status 11 (INTERNET_STATUS_NAME_RESOLVED) 0 times, received 1 times
Or in a slightly different location on 2022-08-19 on w1064v1507-64:
http.c:5694: Testing InternetReadFileExW with IRF_NO_WAIT flag... http.c:376: Test failed: unexpected status 10 (INTERNET_STATUS_RESOLVING_NAME) http.c:376: Test failed: unexpected status 11 (INTERNET_STATUS_NAME_RESOLVED) http.c:376: Test failed: unexpected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) http.c:5353: Test failed: expected status 20 (INTERNET_STATUS_CONNECTING_TO_SERVER) 1 times, received 2 times ... http.c:596: Starting InternetReadFile test with flags 0x10000000 on url http://test.winehq.org/tests/post.php http.c:644: Test failed: expected status 10 (INTERNET_STATUS_RESOLVING_NAME) 0 times, received 1 times http.c:645: Test failed: expected status 11 (INTERNET_STATUS_NAME_RESOLVED) 0 times, received 1 times
See https://test.winehq.org/data/patterns.html#wininet:http
This has only been seen on w1064v1507 and the new w11pro64 VM. So it's not just a quirk of Windows 10 1507 but I don't know what sets these two test configurations apart from the others (if anything).
My understanding is that we expect to get these statuses only on the first connection to the server. After that we expect the DNS information and/or server connection to be cached so that these steps are skipped. However: 1. I don't think we should make assumptions on when Windows is allowed to clear its DNS cache or reset its connections. 2. Maybe the connection was actually closed by the server? For instance my understanding is that Apache can be configured to start a new worker process after a number of requests have been served. If that limit is reached while our test runs I believe we may get disconnected and have to reconnect to the new worker process. 3. Or the winehq.org administrator restarted the (web) server on these dates? 3. Or sometimes there are just network glitches.
So I think we should allow these statuses as optional pretty much everywhere.