Issue
-
As an administrator, certain pages in CloudBees CI, such as the main dashboard page, load slowly or not at all. A 503 error may be displayed.
-
Non administrator users do not see this issue.
-
Pipeline Maven Integration plugin is installed.
-
A similar stack trace as shown below shows in the
slow-requests
of a support bundle or in thread dumps:
28389msec elapsed in Handling GET /jenkins/ from 12.34.567.890 : qtp1160264930-3530033 View/index.jelly AdministrativeMonitorsDecorator/footer.jelly sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215) java.util.concurrent.SynchronousQueue$TransferQueue.awaitFulfill(SynchronousQueue.java:764) java.util.concurrent.SynchronousQueue$TransferQueue.transfer(SynchronousQueue.java:695) java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:941) com.zaxxer.hikari.util.ConcurrentBag.borrow(ConcurrentBag.java:157) com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:179) com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:161) com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:100) org.jenkinsci.plugins.pipeline.maven.dao.PipelineMavenPluginH2Dao.isEnoughProductionGradeForTheWorkload(PipelineMavenPluginH2Dao.java:68) org.jenkinsci.plugins.pipeline.maven.dao.PipelineMavenPluginMonitoringDao.isEnoughProductionGradeForTheWorkload(PipelineMavenPluginMonitoringDao.java:261) org.jenkinsci.plugins.pipeline.maven.NonProductionGradeDatabaseWarningAdministrativeMonitor.isActivated(NonProductionGradeDatabaseWarningAdministrativeMonitor.java:19)
Resolution
At the time of this writing, January 28th 2021, there is no bug fix for this issue. There is a bug report currently open for this however: [JENKINS-63994] Administrative Monitor causes slow page loading - Jenkins Jira Please see workaround below.
Workaround
The workaround for this issue is to disable the Maven administrative monitor. You should be able to do this by accessing the Configure System page of CloudBees CI directly by hitting the https://JENKINS_URL/configure
endpoint in the browser. Then you can disable: Administrative monitors configuration -> Pipeline Maven Integration - Non Production Database
Another option to disable the monitor is to use a line of groovy code. You can run the following directly on the affected Controller’s Script Console by accessing https://JENKINS_URL/script
or run it by using a Cluster Operation from the Operations Center:
AdministrativeMonitor.all().getInstance(org.jenkinsci.plugins.pipeline.maven.NonProductionGradeDatabaseWarningAdministrativeMonitor).disable(true)
Tested product/plugin versions
-
CloudBees CI (CloudBees Core) 2.235.5.1