Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-11680

exception handling logic error in jenkins-node-cleanup job

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: Continuous Integration
    • Labels:
      None

      Description

      A fatal error (in this case, due to file permissions) should not cause an NPE to generated from the house keeping data structures.

      Started by timer
      [EnvInject] - Loading node environment variables.
      Building remotely on jenkins-master (swarm) in workspace /home/jenkins-slave/workspace/sqre/infrastructure/jenkins-node-cleanup
      found elcap-1
      node: elcap-1, free space: 99GB. Idle: false
      found elcap-2
      node: elcap-2, free space: 116GB. Idle: true
      found elcap-3
      node: elcap-3, free space: 126GB. Idle: false
      found jenkins-el6-1
      node: jenkins-el6-1, free space: 372GB. Idle: false
      found jenkins-el6-2
      node: jenkins-el6-2, free space: 221GB. Idle: false
      found jenkins-el7-1
      node: jenkins-el7-1, free space: 952GB. Idle: false
      found jenkins-el7-2
      node: jenkins-el7-2, free space: 1049GB. Idle: false
      found jenkins-el7-3
      node: jenkins-el7-3, free space: 182GB. Idle: false
      found jenkins-el7-4
      node: jenkins-el7-4, free space: 27GB. Idle: true
      Failed to delete /home/jenkins-slave/workspace: java.io.IOException: remote file operation failed: /home/jenkins-slave/workspace at hudson.remoting.Channel@5b7b0f4b:JNLP4-connect connection from ip-192-168-123-181.ec2.internal/192.168.123.181:35978: java.io.IOException: Unable to delete '/home/jenkins-slave/workspace/sqre/infrastructure/update-cmirror/local_mirror/linux-64/_license-1.1-py27_0.tar.bz2'. Tried 3 times (of a maximum of 3) waiting 0.1 sec between attempts.
      found jenkins-master
      node: jenkins-master, free space: 473GB. Idle: false
      found lsst-dev
      found sierra-1
      node: sierra-1, free space: 98GB. Idle: false
      found sierra-2
      found sierra-3
      node: sierra-3, free space: 101GB. Idle: false
       
      ### SUMMARY
        * failedNodes:
      ERROR: Build step failed with exception
      java.lang.NullPointerException: Cannot get property 'displayName' on null object
      	at org.codehaus.groovy.runtime.NullObject.getProperty(NullObject.java:60)
      	at org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:174)
      	at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty(NullCallSite.java:47)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:296)
      	at Script1$_run_closure8$_closure10.doCall(Script1.groovy:218)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
      	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
      	at groovy.lang.Closure.call(Closure.java:414)
      	at groovy.lang.Closure.call(Closure.java:430)
      	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2030)
      	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2015)
      	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2056)
      	at org.codehaus.groovy.runtime.dgm$162.invoke(Unknown Source)
      	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
      	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
      	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
      	at Script1$_run_closure8.doCall(Script1.groovy:217)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:498)
      	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
      	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
      	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1027)
      	at groovy.lang.Closure.call(Closure.java:414)
      	at groovy.lang.Closure.call(Closure.java:430)
      	at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:5228)
      	at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2107)
      	at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
      	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
      	at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
      	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
      	at Script1.run(Script1.groovy:214)
      	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:585)
      	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:623)
      	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:594)
      	at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript.evaluate(SecureGroovyScript.java:170)
      	at hudson.plugins.groovy.SystemGroovy.run(SystemGroovy.java:95)
      	at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:59)
      	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:735)
      	at hudson.model.Build$BuildExecution.build(Build.java:206)
      	at hudson.model.Build$BuildExecution.doRun(Build.java:163)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:490)
      	at hudson.model.Run.execute(Run.java:1735)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:405)
      Build step 'Execute system Groovy script' marked build as failure
      Finished: FAILURE
      

        Attachments

          Issue Links

            Activity

            Hide
            jhoblitt Joshua Hoblitt added a comment -

            Groovy was interpreting allJobs as a property lookup rather than as a method
            invocation. Changing to allJobs() forces groovy to treat the statement as a
            method call. This problem was being masked by an overzealous catch block,
            which was catching the missing property exception then assuming the exception
            type was a Node, resulting in an NPE.

            Show
            jhoblitt Joshua Hoblitt added a comment - Groovy was interpreting allJobs as a property lookup rather than as a method invocation. Changing to allJobs() forces groovy to treat the statement as a method call. This problem was being masked by an overzealous catch block, which was catching the missing property exception then assuming the exception type was a Node, resulting in an NPE.

              People

              Assignee:
              jhoblitt Joshua Hoblitt
              Reporter:
              jhoblitt Joshua Hoblitt
              Watchers:
              Joshua Hoblitt
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.