Jenkins Executor, newBuild and SCM logic should be robust runtime exceptions in bogus plugins

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      We have identified an issue with dead Jenkins executor, which happens with the following stacktrace:

      java.lang.NullPointerException 
      at org.jenkinsci.plugins.p4.client.ConnectionConfig.<init>(ConnectionConfig.java:18) 
      at org.jenkinsci.plugins.p4.client.ConnectionHelper.<init>(ConnectionHelper.java:61) 
      at org.jenkinsci.plugins.p4.PerforceScm.guessBrowser(PerforceScm.java:186) 
      at hudson.scm.SCM.getEffectiveBrowser(SCM.java:146) 
      at hudson.scm.ChangeLogSet.browserFromBuild(ChangeLogSet.java:82) 
      at hudson.scm.ChangeLogSet.<init>(ChangeLogSet.java:76) 
      at com.tikal.jenkins.plugins.multijob.MultiJobChangeLogSet.<init>(MultiJobChangeLogSet.java:11) 
      at com.tikal.jenkins.plugins.multijob.MultiJobBuild.<init>(MultiJobBuild.java:36) 
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
      at java.lang.reflect.Constructor.newInstance(Constructor.java:408) 
      at jenkins.model.lazy.LazyBuildMixIn.newBuild(LazyBuildMixIn.java:184) 
      at hudson.model.AbstractProject.newBuild(AbstractProject.java:1018) 
      at hudson.model.AbstractProject.createExecutable(AbstractProject.java:1209) 
      at hudson.model.AbstractProject.createExecutable(AbstractProject.java:144) 
      at hudson.model.Executor$1.call(Executor.java:364) 
      at hudson.model.Executor$1.call(Executor.java:346) 
      at hudson.model.Queue._withLock(Queue.java:1379) 
      at hudson.model.Queue.withLock(Queue.java:1240) 
      at hudson.model.Executor.run(Executor.java:346)
      

      And... all Jenkins logic layers do not catch Runtime exceptions and hence lead to the executor death. These exceptions should be handled in...

      1) hudson.model.Executor.run
      2) jenkins.model.lazy.LazyBuildMixIn.newBuild
      3) hudson.scm.ChangeLogSet.browserFromBuild

      It would make the core more robust

            Assignee:
            Jesse Glick
            Reporter:
            Oleg Nenashev
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Resolved:
              Archived: