-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
-
2
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Current behavior
RTTPinger.measureRoundTripTime returns without scheduling another sample when connect() rejects or when the dedicated hello command rejects. latestRtt stays at the previous successful sample. Streaming heartbeats use monitor.rttPinger.latestRtt, and client-side operation timeouts use the minimum RTT from these samples. The hello monitor keeps running. The sampler starts again only on monitor reset or when the server stops advertising topologyVersion.
Expected behavior
A failed attempt must not be stored as a successful RTT. The pinger clears the failed socket, leaves latestRtt unchanged, and measures again after heartbeatFrequencyMS. A later success updates latestRtt.
Scope
src/sdam/monitor.ts RTTPinger. Present on main when the server advertises topologyVersion (streaming monitoring, MongoDB 4.4 and newer).