Currently sharding DDL coordinators attempt to acquire dist-locks in their construction phase. This is blocking work that depends on other coordinators to complete. Since all the coordinators use the same shared threadpool we can end-up with the following deadlock on thread acquisition:
- coordinator 1 waits on the dist-locks acquisition without yelding his threads (T1)
- coordinator 2 waits on (T1) to be available in other to release the distlock.
SERVER-56599 the threadpool size used by the ShardingDDLCoordinatorService has been made of unlimited size due to several bugs.
The goal of this ticket is to make it capped again once all the related bugs have been solved.