Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-91831

uassert in NetworkInterfaceTL::setTimer can crash the server

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 7.3.4, 7.0.13
    • Affects Version/s: None
    • Component/s: None
    • None
    • Service Arch
    • Fully Compatible
    • v7.3, v7.0, v6.0, v5.0
    • Workload Scheduling 2024-07-08, Workload Scheduling 2024-07-22

      This is the leftover bit of SERVER-49435 for versions older than 8.0. In those versions, NetworkInterfaceTL::CommandStateBase::setTimer will uassert if the deadline is already in the past by the time the function is called.

      SERVER-49435 made sure that NetworkInterfaceTL::ExhaustCommandState::sendRequest handled the exception so that the server wouldn't crash on that path, but it didn't cover the NetworkInterfaceTL::ExhaustCommandState::continueExhaustRequest path. If the thread running that code gets pre-empted for long enough between the point where the deadline is set and the point where it is compared against the current time, this can crash the server.

      SERVER-72055 removed this problem for version 8.0 and on, but it's still present in older versions.

            Assignee:
            vojislav.stojkovic@mongodb.com Vojislav Stojkovic
            Reporter:
            vojislav.stojkovic@mongodb.com Vojislav Stojkovic
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: