AsyncOp cancellation is racy w.r.t. generation increment in NetworkInterfaceASIO

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • 3.1.9
    • Affects Version/s: None
    • Component/s: Networking
    • None
    • Fully Compatible
    • ALL
    • Hide

      run sharding/find_getmore_cmd.js in a loop

      Show
      run sharding/find_getmore_cmd.js in a loop
    • Platform A (10/09/15)
    • 0
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      We bump the generation count in _completeOperation before resetting the state of the AsyncOp, and before removing the op from _inProgress. As a result a cancel can be scheduled after the generation is bumped, but before the op is released to the pool. Under certain (nondeterministic) timing conditions this can result in spurious cancellation if another command is immediately scheduled and gets the same AsyncOp from the ConnectionPool.

            Assignee:
            Adam Midvidy (Inactive)
            Reporter:
            Adam Midvidy (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: