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

Kill cursors when transitioning to rollback

    • Type: Icon: Bug Bug
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Replication
    • Labels:
      None
    • Replication
    • ALL

      Exhaust cursors have a short period of time in between 'find' and 'getMore's where the cursor is not actively running operations. Rollback currently doesn't kill cursors that have no actively running operation.

      This means that a cursor for oplog fetching might not be killed when a node's sync source transitions to rollback. The sync source could roll back the syncing node's minValid, meaning it is no longer a valid sync source for the syncing node. Since the syncing node only checks the sync source's rbid for rollback after receiving the first batch, it would not stop fetching from its potentially invalid sync source.

      We should kill cursors when entering rollback so that the syncing node needs to find a new sync source.

            Assignee:
            backlog-server-repl [DO NOT USE] Backlog - Replication Team
            Reporter:
            samy.lanka@mongodb.com Samyukta Lanka
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: