Skip to content

cluster-stats + jcasc breaks Jenkins in half #2204

@brovoca

Description

@brovoca

Checklist

  • I've checked the existing dashboard for an open issue first
  • I've created an issue on the plugins issue tracker, (Jira or GitHub depending on the plugin), use this link for Jira
  • If the plugin uses Jira for issues you've added the label jcasc-compatibility

Plugin issue link

None. I have NOT created an issue on the plugins issue tracker, because I don't care reporting problems for an 8 years old plugin. Feel free to waste your time.

Plugin GitHub repository link

https://github.com/jenkinsci/cluster-stats-plugin

Description

cluster-stats completely blocks Jenkins from booting when combined with JCasC. The issue occurs no matter if JCasC has any YAML files to load or not.

Full log on a pretty standard, and fresh Jenkins instance:

Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2023-02-03 15:56:58.277+0000 [id=1] INFO    winstone.Logger#logInternal: Beginning extraction from war file
2023-02-03 15:56:58.339+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2023-02-03 15:56:58.398+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: jetty-10.0.12; built: 2022-09-14T01:54:40.076Z; git: 408d0139887e27a57b54ed52e2d92a36731a7e88; jvm 11.0.18+10
2023-02-03 15:56:58.668+0000 [id=1] INFO    o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2023-02-03 15:56:58.715+0000 [id=1] INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: Session workerName=node0
2023-02-03 15:56:59.077+0000 [id=1] INFO    hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2023-02-03 15:56:59.198+0000 [id=1] INFO    o.e.j.s.handler.ContextHandler#doStart: Started w.@41e1455d{Jenkins v2.375.2,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2023-02-03 15:56:59.212+0000 [id=1] INFO    o.e.j.server.AbstractConnector#doStart: Started ServerConnector@7494f96a{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2023-02-03 15:56:59.226+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: Started Server@236e3f4e{STARTING}[10.0.12,sto=0] @1386ms
2023-02-03 15:56:59.229+0000 [id=25]        INFO    winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2023-02-03 15:56:59.450+0000 [id=32]        INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
2023-02-03 15:56:59.702+0000 [id=44]        INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2023-02-03 15:57:02.322+0000 [id=43]        INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2023-02-03 15:57:02.340+0000 [id=33]        INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
2023-02-03 15:57:02.345+0000 [id=44]        INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2023-02-03 15:57:03.482+0000 [id=36]        INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
2023-02-03 15:57:03.584+0000 [id=42]        SEVERE  jenkins.InitReactorRunner$1#onTaskFailed: Failed ConfigurationAsCode.init
java.lang.IllegalStateException: cannot call getRootUrlFromRequest from outside a request handling thread
    at jenkins.model.Jenkins.getRootUrlFromRequest(Jenkins.java:2502)
    at org.zeroturnaround.stats.ClusterStatsManagementLink.getUrlName(ClusterStatsManagementLink.java:19)
    at io.jenkins.plugins.casc.RootElementConfigurator.all(RootElementConfigurator.java:30)
    at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:704)
    at io.jenkins.plugins.casc.ConfigurationAsCode.checkWith(ConfigurationAsCode.java:776)
    at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:761)
    at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:637)
    at io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:306)
    at io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:298)
Caused: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:109)
Caused: java.lang.Error
    at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:115)
    at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:185)
    at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:305)
    at jenkins.model.Jenkins$5.runTask(Jenkins.java:1161)
    at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:221)
    at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
    at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:70)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused: java.lang.Error
    at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:115)
    at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:185)
    at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:305)
    at jenkins.model.Jenkins$5.runTask(Jenkins.java:1161)
    at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:221)
    at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
    at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:70)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
2023-02-03 15:57:03.585+0000 [id=24]        SEVERE  hudson.util.BootFailure#publish: Failed to initialize Jenkins
java.lang.IllegalStateException: cannot call getRootUrlFromRequest from outside a request handling thread
    at jenkins.model.Jenkins.getRootUrlFromRequest(Jenkins.java:2502)
    at org.zeroturnaround.stats.ClusterStatsManagementLink.getUrlName(ClusterStatsManagementLink.java:19)
    at io.jenkins.plugins.casc.RootElementConfigurator.all(RootElementConfigurator.java:30)
    at io.jenkins.plugins.casc.ConfigurationAsCode.invokeWith(ConfigurationAsCode.java:704)
    at io.jenkins.plugins.casc.ConfigurationAsCode.checkWith(ConfigurationAsCode.java:776)
    at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:761)
    at io.jenkins.plugins.casc.ConfigurationAsCode.configureWith(ConfigurationAsCode.java:637)
    at io.jenkins.plugins.casc.ConfigurationAsCode.configure(ConfigurationAsCode.java:306)
    at io.jenkins.plugins.casc.ConfigurationAsCode.init(ConfigurationAsCode.java:298)
Caused: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:109)
Caused: java.lang.Error
    at hudson.init.TaskMethodFinder.invoke(TaskMethodFinder.java:115)
    at hudson.init.TaskMethodFinder$TaskImpl.run(TaskMethodFinder.java:185)
    at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:305)
    at jenkins.model.Jenkins$5.runTask(Jenkins.java:1161)
    at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:221)
    at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:120)
    at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:70)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused: org.jvnet.hudson.reactor.ReactorException
    at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:290)
    at jenkins.InitReactorRunner.run(InitReactorRunner.java:49)
    at jenkins.model.Jenkins.executeReactor(Jenkins.java:1196)
    at jenkins.model.Jenkins.<init>(Jenkins.java:986)
    at hudson.model.Hudson.<init>(Hudson.java:86)
    at hudson.model.Hudson.<init>(Hudson.java:82)
    at hudson.WebAppMain$3.run(WebAppMain.java:247)
Caused: hudson.util.HudsonFailedToLoad
    at hudson.WebAppMain$3.run(WebAppMain.java:264)
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v7.Java7$1 (file:/var/jenkins_home/war/WEB-INF/lib/groovy-all-2.4.21.jar) to constructor java.lang.invoke.MethodHandles$Lookup(java.lang.Class,int)
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v7.Java7$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2023-02-03 15:57:03.738+0000 [id=24]        INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Stopping Jenkins
2023-02-03 15:57:03.753+0000 [id=24]        INFO    jenkins.model.Jenkins$16#onAttained: Started termination
2023-02-03 15:57:03.770+0000 [id=24]        INFO    jenkins.model.Jenkins$16#onAttained: Completed termination
2023-02-03 15:57:03.770+0000 [id=24]        INFO    jenkins.model.Jenkins#_cleanUpDisconnectComputers: Starting node disconnection
2023-02-03 15:57:03.778+0000 [id=24]        INFO    jenkins.model.Jenkins#_cleanUpShutdownPluginManager: Stopping plugin manager
2023-02-03 15:57:03.813+0000 [id=24]        INFO    jenkins.model.Jenkins#_cleanUpPersistQueue: Persisting build queue
2023-02-03 15:57:03.820+0000 [id=24]        INFO    jenkins.model.Jenkins#_cleanUpAwaitDisconnects: Waiting for node disconnection completion
2023-02-03 15:57:03.821+0000 [id=24]        INFO    hudson.lifecycle.Lifecycle#onStatusUpdate: Jenkins stopped

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions