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

NITL cancelCommand after shutdown

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0, 7.3.2, 8.0.0-rc2
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Service Arch
    • Fully Compatible
    • ALL
    • v8.0, v7.3
    • Service Arch 2024-04-15
    • 120

      Consider two threads, one calling into NetworkInterfaceTL::cancelCommand and the other calling into NetworkInterfaceTL::shutdown.

      As a result, because of SERVER-87037, the ASIOReactor rejects the work, which hits an invariant if the work happens to be a GuaranteedExecutor (before SERVER-87037, the work would be scheduled on the ASIOReactor and either silently ignored until process end or destroyed on NITL destruction which also hits an invariant). Using GuaranteedExecutor is commonly the case with NetworkInterfaceTL.

      Have NITL correctly guarantee that commands will have their final promise fulfilled prior to shutdown (as the code seems to be attempting, but failing to do today).

            Assignee:
            james.bronsted@mongodb.com James Bronsted
            Reporter:
            james.bronsted@mongodb.com James Bronsted
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: