Details
-
Type:
Bug
-
Status: Resolved (View Workflow)
-
Priority:
Critical
-
Resolution: Fixed
-
Component/s: core, envinject-plugin
-
Labels:
-
Environment:1.92.x - latest
-
Similar Issues:
Description
Original description:
> Jenkins fails to startup if the EnvInject global system properties file is missing
hudson.util.HudsonFailedToLoad: java.io.IOException: org.jenkinsci.lib.envinject.EnvInjectException: java.io.IOException: The given properties file path '/Users/nenashev/Documents/jenkins/plugins/envinject-plugin/foo.prop' doesn't exist. at hudson.WebAppMain$3.run(WebAppMain.java:237) Caused by: java.io.IOException: org.jenkinsci.lib.envinject.EnvInjectException: java.io.IOException: The given properties file path '/Users/nenashev/Documents/jenkins/plugins/envinject-plugin/foo.prop' doesn't exist. at org.jenkinsci.plugins.envinject.EnvInjectComputerListener.onOnline(EnvInjectComputerListener.java:171) at jenkins.model.Jenkins.<init>(Jenkins.java:857) at hudson.model.Hudson.<init>(Hudson.java:83) at hudson.model.Hudson.<init>(Hudson.java:79) at hudson.WebAppMain$3.run(WebAppMain.java:225) Caused by: org.jenkinsci.lib.envinject.EnvInjectException: java.io.IOException: The given properties file path '/Users/nenashev/Documents/jenkins/plugins/envinject-plugin/foo.prop' doesn't exist. at org.jenkinsci.plugins.envinject.service.EnvInjectEnvVars.getEnvVarsFileProperty(EnvInjectEnvVars.java:76) at org.jenkinsci.plugins.envinject.EnvInjectComputerListener.getNewMasterEnvironmentVariables(EnvInjectComputerListener.java:69) at org.jenkinsci.plugins.envinject.EnvInjectComputerListener.onOnline(EnvInjectComputerListener.java:168) ... 4 more Caused by: java.io.IOException: The given properties file path '/Users/nenashev/Documents/jenkins/plugins/envinject-plugin/foo.prop' doesn't exist. at org.jenkinsci.plugins.envinject.service.PropertiesVariablesRetriever.invoke(PropertiesVariablesRetriever.java:91) at org.jenkinsci.plugins.envinject.service.PropertiesVariablesRetriever.invoke(PropertiesVariablesRetriever.java:20) at hudson.FilePath.act(FilePath.java:989) at hudson.FilePath.act(FilePath.java:967) at org.jenkinsci.plugins.envinject.service.EnvInjectEnvVars.getEnvVarsFileProperty(EnvInjectEnvVars.java:74) ... 6 more
Code changed in jenkins
User: Oleg Nenashev
Path:
core/src/main/java/hudson/slaves/ComputerListener.java
core/src/main/java/jenkins/model/Jenkins.java
test/src/test/java/jenkins/model/JenkinsTest.java
http://jenkins-ci.org/commit/jenkins/b10440702f74c70786820bdf38d417569d86644d
Log:
[FIXED JENKINS-38487] - Jenkins startup must not fail in the case of ComputerListener failure (#2610)
Without this code Jenkinbs startup fails if EnvInject fails to find global property file on startup.
Javadoc says "Exceptions will be recorded to the listener. Note that throwing an exception doesn't put the computer offline." regarding the listener method exception, hence we should not block Jenkins startup
(cherry picked from commit 58e1228c99fd3d5063b0967d7780dc536bc2c463)