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

    • Type: Icon: Task Task
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Server Programmability

      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

            Assignee:
            Unassigned Unassigned
            Reporter:
            george.wangensteen@mongodb.com George Wangensteen
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: