https://bugs.winehq.org/show_bug.cgi?id=52474
Bug ID: 52474 Summary: ws2_32:sock fails intermittently - 'Test failed: expected timeout' Product: Wine Version: 7.0 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winsock Assignee: wine-bugs@winehq.org Reporter: jinoh.kang.kr@gmail.com Distribution: ---
The test_connect_events() function contains the following checks, where the check (2) fails intermittently:
1. check_events(ctx, FD_CONNECT, FD_WRITE, 200); 2. check_events(ctx, 0, 0, 0);
A hypothesis for the cause of the test failure is that the WSAEnumNetworkEvents() call inside the check (1) races with the server setting the event.
Note that WSAEnumNetworkEvents performs the following steps:
a. It calls ResetEvent on the given event. b. It issues IOCTL_AFD_GET_EVENTS command on the socket to retrieve the events so far.
It's possible that the event may be set by the server between (a) and (b), which lingers until the next call to WSAEnumNetworkEvents(). This explains why the event wait in check (2) is satisfied immediately but subsequent tests report no events.