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

Retry on ConflictingOperationInProgress in index_operations_abort_concurrent_outgoing_migrations.js

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v4.4
    • Sprint:
      Sharding 2020-09-07
    • Linked BF Score:
      39

      Description

      jstests/sharding/index_operations_abort_concurrent_outgoing_migrations.js runs a migration after an earlier one with the same donor and recipient is aborted because of an index operation, which is susceptible to failing with ConflictingOperationInProgress if the following sequence occurs:

      • Migration m1 begins from shard0 to shard1
      • m1 is interrupted when an index build applies on shard0
      • Shard0 returns an error to the client immediately without notifying shard1 of the failure (shard1 will eventually discover the migration aborted when it contacts shard0 as part of the recipient protocol)
      • The test begins another migration m2 from shard0 to shard1
      • m2 fails because shard0 is unable to begin a migration on shard1 because shard1 has yet to discover m1 failed (a shard can only receive one chunk at a time)
      • Shard0 returns ConflictingOperationInProgress

      Eventually the recipient shard should clean up state from the failed migration and allow new migrations involving it to succeed, so to handle this, the test should retry its migrations on ConflictingOperationInProgress.

        Attachments

          Activity

            People

            Assignee:
            jack.mulrow Jack Mulrow
            Reporter:
            jack.mulrow Jack Mulrow
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: