[SERVER-38549] Make NetworkInterfaceMock return NetworkInterfaceExceededTimeLimit Created: 11/Dec/18  Updated: 29/Oct/23  Resolved: 13/Dec/18

Status: Closed
Project: Core Server
Component/s: Networking
Affects Version/s: None
Fix Version/s: 4.1.7

Type: Bug Priority: Major - P3
Reporter: Matthew Saltz (Inactive) Assignee: Benjamin Caimano (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Service Arch 2018-12-17
Participants:

 Description   

The mock network interface returns a NetworkTimeout error code on timeout running a command whereas the real network interface seems to return NetworkInterfaceExceededTimeLimit. They seem to mean different things and are handled differently (e.g. NetworkTimeout is considered a retryable error, at least by this list, whereas NetworkInterfaceExceededTimeLimit is not). I think the network interface mock should be fixed to return NetworkInterfaceExceededTimeLimit in the correct scenarios.



 Comments   
Comment by Githook User [ 13/Dec/18 ]

Author:

{'email': 'ben.caimano@10gen.com', 'name': 'Ben Caimano'}

Message: SERVER-38549 Make NetworkInterfaceMock return NetworkInterfaceExceededTimeLimit
Branch: master
https://github.com/mongodb/mongo/commit/ea10ad36115843fedcf34490b6e92e2bd5ef0d20

Comment by Benjamin Caimano (Inactive) [ 12/Dec/18 ]

Thrashing this JIRA because I fail to workflow right.

Comment by Benjamin Caimano (Inactive) [ 11/Dec/18 ]

Trivial investigation says this was just mock talking to test. I'm running a patch build with the code changed over in both src/mongo/executor/network_interface_mock.cpp and src/mongo/executor/task_executor_test_common.cpp now.

The general gist over the difference is:

  • NIETL is an indication that a specified (or at least defaulted and accepted) timeout has been exceeded. It usually happens when the conn pool is either at maxConns or the network is giving us trouble connecting.
  • NetworkTimeout is the code we use when syscalls or transport layer actions timeout on us.

In short, NIETL is a level abstracted upward from NetworkTimeout.

Generated at Thu Feb 08 04:49:16 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.