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

Don't let the ServiceExecutorFixed (or anyone) call run on the ingress reactor

    XMLWordPrintableJSON

Details

    • Task
    • Status: Open
    • Major - P3
    • Resolution: Unresolved
    • None
    • None
    • None
    • None
    • Service Arch

    Description

      Due to https://github.com/chriskohlhoff/asio/issues/240, we should never call run on the ingress reactor - that iocontext shared by synchronous sockets should never have run called on it, because the reactor will spuriously wakeup every timeĀ  synchronous networking is performed on those sockets even though it will have nothing to do. But we're currently doing so in ServiceExecutorFixed::start (https://github.com/mongodb/mongo/blob/75a7e2a20b345bcca9601756f64a84ffbcdaf4b1/src/mongo/transport/service_executor_fixed.cpp) which I believe we call unconditionally when starting the service entry point https://github.com/mongodb/mongo/blob/75a7e2a20b345bcca9601756f64a84ffbcdaf4b1/src/mongo/transport/service_entry_point_impl.cpp#L272

      Attachments

        Issue Links

          Activity

            People

              backlog-server-servicearch Backlog - Service Architecture
              george.wangensteen@mongodb.com George Wangensteen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: