Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
Description
The view takes a long time to load with a lot of thread blocking, particularly after restarting Jenkins.
Thread dumps indicate that the problem lies in PipelineFactory.getUpstreamBuild() method during the Jenkins.getItem() call. It looks like there are two issues that compound the problem.
1. We use LDAP and Jenkins.getItem() does a lot of "hasPermissions" checks which are expensive.
2. The JQuery continues to submit additional requests to the server eventually filling up the entire thread pool.
Suggestions:
1. Refactor the code to use a less expensive lookup of the project (e.g. Jenkins.getItemMap())
2. Do not submit another JQuery request if there is already one in progress.
PipelineFactory fixes:
https://github.com/Diabol/delivery-pipeline-plugin/commit/6c31f5d5e34bddd0a804a228ffec2a8e8fe9662f
Refresh request will just be one per client.
JQuery fixes:
https://github.com/Diabol/delivery-pipeline-plugin/commit/c7a2ef7ee6ed02f921fbc7519edc4c1dce8d7e89