There are a number thread pools being created related to management request handling that are redundant and could be replaced by the ServerService-created or HostControllerService-created pool:
RemoteDomainConnectionService - Executors.newCachedThreadPool
HostControllerConnectionService - Executors.newCachedThreadPool
DomainModelControllerService - Executors.newCachedThreadPool
MasterDomainControllerOperationHandlerService.slaveRequestExecutor (1 core thread, unlimited max threads, no queue – essentially same as Executors.newCachedThreadPool)
I believe these specialized pools were created because AbstractModelControllerOperationHandlerFactoryService uses a 4 thread pool with a large queue. That's appropriate for throttling threads used for end user requests, but is inappropriate for internal tasks where such throttling risks thread starvation and deadlock. So, this fix will shift the end user request handling to a specialized limited pool and then all the other tasks can use the general pool.