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

Race between recipientForgetMigration cmd and TenantMigrationRecipientService future chain restart on errors machinery.

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 5.3.0, 5.2.2
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Fully Compatible
    • ALL
    • v5.2, v5.1
    • Server Serverless 2022-01-24
    • 126

      recipientForgetMigration cmd before waiting for the task completion promise, it will try to interrupt the TenantMigrationRecipient instance. But if it is already in the interrupted state, recipientForgetMigration cmd will skip interrupt and starts to wait for the task completion promise to get fulfilled. However, if the original interrupt status is retryable error code, we would reset the task state to "running", clear interrupt status & restart the TenantMigrationRecipientService future chain. As a result of restart, the task completion promise for that recipient instance won't get fulfilled (unless the node steps down or shuts down or receives another recipientForgetMigration cmd), leading to the recipientForgetMigration cmd hang.

            suganthi.mani@mongodb.com Suganthi Mani
            suganthi.mani@mongodb.com Suganthi Mani
            0 Vote for this issue
            6 Start watching this issue