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

      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: