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

cluster::createWithRouterLoop should use a CollectionRouter

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.1.0-rc0, 8.0.0-rc8
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • Fully Compatible
    • v8.0
    • CAR Team 2024-04-01, CAR Team 2024-05-27, CAR Team 2024-06-10

      SERVER-83395 switched out the CollectionRouter in the cluster::createCollection command for a DBPrimaryRouter. In the final world of track unsharded, this is correct because the coordinator should only be instantiated on the dbPrimary so the error thrown in case of incorrect routing information would be a StaleDBVersion. However, we still have some paths that are bypassing the coordinator and calling the local create command. This command will throw StaleConfig in multiple cases (metadata being unknown, critical section taken, etc.). This error is not handled by the DBPrimaryRouter which only retries on StaleDBVersion errors.

      For now, we should use a CollectionRouter in this place and we can reevaluate in the future whether we can switch to a DBPrimaryRouter.

            Assignee:
            allison.easton@mongodb.com Allison Easton
            Reporter:
            allison.easton@mongodb.com Allison Easton
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: