Pipeline Maven Admin Monitor causes slow UI

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)

Environment

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 http://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 http://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

Have more questions?

0 Comments

Please sign in to leave a comment.