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

Sharding passthroughs that enable LogicalSessionCache refreshes should catch BackgroundOperationInProgressForDatabase and retry the operation

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Sharding
    • None
    • Sharding
    • ALL

      There are some operations, like the restartCatalog command, that fail if a background operation such as an index build is in progress.

      This is a problem in sharding passthroughs where the periodic LogicalSessionCache refresh is enabled, because the first LogicalSessionCache refresh on a shard causes a background index build on the config.cache.chunks.config.system.sessions collection (because it causes a CatalogCache refresh for config.system.sessions).

      We could:

      • blacklist any tests that cannot tolerate background index builds from sharding passthroughs that have periodic logical session cache refreshes
      • ensure all shards have refreshed their CatalogCache for the ns at least once before running the tests, so that the indexes are already built
      • add an override that catches BackgroundOperationInProgressForDatabase and retries the operation

      I think the last one is the best option, since it maximizes test coverage.

            Assignee:
            backlog-server-sharding [DO NOT USE] Backlog - Sharding Team
            Reporter:
            esha.maharishi@mongodb.com Esha Maharishi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: