-
Type: Task
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Networking & Observability
We set SO_RCVTIMEO and SO_SNDTIMEO on ASIO in order to implement socket timeouts. However, there is no equivalent in gRPC-- the closest we have is deadlines, which sets a date after which the stream will be terminated. This doesn't really serve the same purpose, however, and could get pretty tricky for long-running, but active, streams.
Decide if we plan to respect socket timeouts in gRPC, and update the gRPC egress implementation to correctly propagate the socket timeout. This will require updating the following callsites:
- connection_string_connect.cpp -- the socket timeout gets dropped, we need to pass it along here.
- It gets renamed as the "connectTimeout" in the _streamFactory, but it should really be used as the socket timeout, which was its original purpose.
After this ticket is complete, the jstests/noPassthrough/architecture/socket_disconnect_kills.js test should be re-enabled.