SingleServerDiscoveryMonitor should check both local and remote errors for hello requests

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Networking & Observability
    • Fully Compatible
    • ALL
    • v8.3
    • N&O 2026-03-16, N&O 2026-03-30
    • 200
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Currently, the SingleServerDiscoveryMonitor only checks the top-level status (local/transport-layer status). It does not check the remote status. As a result, when there is a remote error (e.g. ShutdownInProgress), it would still invoke _onHelloSuccess which would proceed to extract various fields from the error response and may lead to unexpected behaviors.

      For example, it would invoke saveLastWriteInfo with an empty lastWriteBson, which would then try to parse the "opTime" and hit IDLFailedToParse. The error would get swallowed due to the use of StatusWith but _opTime just would remain unset. After that, the RSM would enter the expedite mode for the host and scheduled another hello request immediately since the ShutdownInProgress response does not have "moreToCome". Please see BF-40359 for more info. 

            Assignee:
            David Goffredo
            Reporter:
            Cheahuychou Mao
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: