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

TestGetDestinedRecipientThrowsOnBlockedRefresh should not run two refreshes without resetting the catalog cache loader mock return value

    • Sharding EMEA
    • Fully Compatible
    • ALL
    • v7.0, v6.0, v5.0
    • Sharding EMEA 2023-09-04
    • 18
    • 2

      Detailed description in the attached BF.

      This unittest is starting two refreshes - one from the ShardingWriteRouter and one from calling getCollectionRoutingInfoWithRefresh and is only setting the catalog cache loader mock return value for the collection once. This is fine in the normal case where the refresh from the ShardingWriteRouter completes before the getCollectionRoutingInfoWithRefresh begins the refresh because the lookup time in the catalog cache refresh becomes the actual collection version after the first refresh and the catalog cache loader mock returns no changed chunks as expected. However, in the case that the getCollectionRoutingInfoWithRefresh launches the lookup when the prior refresh hasn't completed, the lookup time is still ChunkVersion::UNSHARDED() and so the return of no changed chunks causes the new chunk map to be created with no chunks in it.

            jordi.serra-torrens@mongodb.com Jordi Serra Torrens
            allison.easton@mongodb.com Allison Easton
            0 Vote for this issue
            3 Start watching this issue