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

establishCursors() must always drain the AsyncRequestsSender::_baton

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 4.9.0, 4.0.23, 4.4.4, 4.2.13
    • None
    • None
    • Fully Compatible
    • ALL
    • v4.4, v4.2, v4.0
    • Service Arch 2020-04-06, Service arch 2020-04-20, Service arch 2020-05-04, Service arch 2020-05-18, Service arch 2020-12-28, Service Arch 2021-01-25, Security 2021-01-25, Security 2021-02-08, Security 2021-02-22
    • 46

    Description

      establishCursors() has a best effort try-catch-throw block here. However, our underlying pattern for the ARS is prone to throwing after interruption. We should introduce a separate draining pattern for the ARS and use it from establishCursors().

      This is usually a seen as an invariant in this block in mongo/transport/baton_asio_linux.h:

      Invariant failure _scheduled.empty() src/mongo/transport/baton_asio_linux.h 116
      

      Attachments

        Issue Links

          Activity

            People

              ben.caimano@mongodb.com Benjamin Caimano (Inactive)
              ben.caimano@mongodb.com Benjamin Caimano (Inactive)
              Votes:
              3 Vote for this issue
              Watchers:
              19 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: