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

XMLWordPrintableJSON

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

      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
              Reporter:
              George Wangensteen (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: