Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WebSocket] "Unable to set TCP no delay option" error on Windows #95217

Closed
Koyper opened this issue Aug 6, 2024 · 1 comment · Fixed by #95233
Closed

[WebSocket] "Unable to set TCP no delay option" error on Windows #95217

Koyper opened this issue Aug 6, 2024 · 1 comment · Fixed by #95233

Comments

@Koyper
Copy link
Contributor

Koyper commented Aug 6, 2024

Tested versions

Reproducible in Windows 4.3rc2; Not reproducible in Windows 4.3beta3

Not reproducible on MacOS 4.3rc2.

System information

Windows 10

Issue description

The error is thrown on Windows only, not MacOS.

The error happens with or without calling WebSocketPeer.set_no_delay(true)

In #94618, reverting the p_tcp->set_no_delay(true); at line 115 in WSLPeer::Resolver::try_next_candidate() to its previous location at line 102 eliminates the error.

E 0:00:12:0447   client.gd:197 @ poll(): Unable to set TCP no delay option
  <C++ Source>   drivers\unix\net_socket_posix.cpp:708 @ set_tcp_no_delay_enabled()
  <Stack Trace>  client.gd:197 @ poll()
                 client.gd:285 @ _process()


E 0:00:12:0530   client.gd:142 @ connect_to_server(): Unable to set TCP no delay option
  <C++ Source>   drivers\unix\net_socket_posix.cpp:708 @ set_tcp_no_delay_enabled()
  <Stack Trace>  client.gd:142 @ connect_to_server()

Steps to reproduce

Connect to a server via WebSocketPeer.connect_to_url() with TLSOptions not null and poll the client. I have not tested without TLS.

Minimal reproduction project (MRP)

NA

@Calinou Calinou added this to the 4.3 milestone Aug 7, 2024
@Calinou Calinou moved this to Unassessed in 4.x Release Blockers Aug 7, 2024
@Faless Faless moved this from Unassessed to Not Critical in 4.x Release Blockers Aug 7, 2024
@Faless Faless moved this from Not Critical to Unassessed in 4.x Release Blockers Aug 7, 2024
@Faless
Copy link
Collaborator

Faless commented Aug 7, 2024

Seems like yet another case of Windows having a completely broken socket stack: redis/hiredis#785 .

According to the findings in that issue, Windows fails to set NO_DELAY if the socket is in a "connecting" state (probably due to an internal race condition).

@akien-mga akien-mga moved this from Unassessed to Very Bad in 4.x Release Blockers Aug 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Very Bad
Development

Successfully merging a pull request may close this issue.

3 participants