-
Bug
-
Resolution: Duplicate
-
Medium
-
None
-
None
-
None
-
Severity 1 - Critical
-
In JIRA we've noticed that crowd component that we use doesn't shutdown MultiThreadedHttpConnectionManager. This causes threads to hang after those components were disposed. In fact, crowd even introduce ShutdownIgnoringMultiThreadedHttpConnectionManager .
All instances of MultiThreadedHttpConnectionManager should be properly cleaned up and all ShutdownIgnoringMultiThreadedHttpConnectionManager usages should be replaced with MultiThreadedHttpConnectionManager (with proper cleanup).
Relying on MultiThreadedHttpConnectionManager#shutdownAll is really bad idea (and this method should not be used ever, as this causes deadlocks).
Problematic instances found by thread analysis in JIRA:
In the com.atlassian.crowd.manager.webhook.WebhookPinger.WebhookPinger()
public WebhookPinger() { this(new HttpClient(new MultiThreadedHttpConnectionManager())); }
In the com.atlassian.crowd.integration.rest.service.RestExecutor:
private final ShutdownIgnoringMultiThreadedHttpConnectionManager connectionManager = new ShutdownIgnoringMultiThreadedHttpConnectionManager();