[SERVER-43112] Sharding passthroughs that enable LogicalSessionCache refreshes should catch BackgroundOperationInProgressForDatabase and retry the operation Created: 30/Aug/19  Updated: 06/Dec/22  Resolved: 23/Sep/19

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Esha Maharishi (Inactive) Assignee: [DO NOT USE] Backlog - Sharding Team
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates SERVER-42866 Trigger a logical session cache refre... Closed
Assigned Teams:
Sharding
Operating System: ALL
Participants:

 Description   

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.



 Comments   
Comment by Esha Maharishi (Inactive) [ 23/Sep/19 ]

We decided to go with the second option since it is straightforward, to be implemented under SERVER-42866.

Generated at Thu Feb 08 05:02:18 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.