Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-38487

Jenkins fails to startup when a ComputerListener throws exception for onOnline() of the master node

    XMLWordPrintable

    Details

    • 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
      
      

        Attachments

          Activity

          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          Actually it's rather a Jenkins core issue, because it does not catch IOExceptions coming from listeners

          Show
          oleg_nenashev Oleg Nenashev added a comment - Actually it's rather a Jenkins core issue, because it does not catch IOExceptions coming from listeners
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          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/58e1228c99fd3d5063b0967d7780dc536bc2c463
          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

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - 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/58e1228c99fd3d5063b0967d7780dc536bc2c463 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
          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          The fix has been integrated towards 2.28

          Show
          oleg_nenashev Oleg Nenashev added a comment - The fix has been integrated towards 2.28
          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          Marked as lts-candidate, but maybe too late for 2.19.3

          Show
          oleg_nenashev Oleg Nenashev added a comment - Marked as lts-candidate, but maybe too late for 2.19.3
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          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)

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - 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)

            People

            • Assignee:
              oleg_nenashev Oleg Nenashev
              Reporter:
              oleg_nenashev Oleg Nenashev
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: