-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
ALL
-
Sharding 2020-08-10
-
45
Currently a single threadpool is shared among the CatalogCache and its loaders. The problem is that the ShardServerCatalogCacheLoader needs to join its tasks to ensure that all the task-related operation contexts are destroyed in order to proceed with its destruction. At the same time the same ThreadPool is used also by the CatalogCache that uses ThreadClient to access the operationContext in its async tasks. These tasks needs to be joined in order to be able to destroy the ServiceContext.
Since the same thread pool can be joined just once but two different components needs to join it, we can't actually use a common shared thread pool.
The solution is to use a different threadpool for the CatalogCache and its loaders respectively until we will have a better framework to share thread pools among several components.
- causes
-
SERVER-50542 Catalog Cache is not cleaned on ShardingTestFixture
- Closed
- is caused by
-
SERVER-49292 Futurify CatalogCacheLoader API
- Closed