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

Remote API: Exception on /computer/xyz/api/json?depth=2 fails when jlnp connection is broken

    Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Duplicate
    • Component/s: core
    • Labels:
    • Environment:
      Jenkins 1.503
    • Similar Issues:

      Description

      If a slave jlnp connection is broken (to a Windows host?), it looks like the offlineCause element is not computed correctly.

      Accessing jenkins/computer/xxx/api/json works fine, but jenkins/computer/qual-a/api/json?depth=2 fails with a 500 error:

      { "actions" : [ ], "displayName" : "xxx", "executors" : [

      { "currentExecutable" : null, "currentWorkUnit" : null, "idle" : true, "likelyStuck" : false, "number" : 0, "progress" : -1 }

      ], "icon" : "computer-x.png", "idle" : true, "jnlpAgent" : true, "launchSupported" : false, "loadStatistics" : { "busyExecutors" : { "hour" : { }, "min" : { }, "sec10" : { } }, "queueLength" : { "hour" : { }, "min" : { }, "sec10" : { } }, "totalExecutors" : { "hour" : { }, "min" : { }, "sec10" : { } } }, "manualLaunchAllowed" : true, "monitorData" :

      { "hudson.node_monitors.SwapSpaceMonitor" : null, "hudson.node_monitors.ArchitectureMonitor" : null, "hudson.node_monitors.ResponseTimeMonitor" : null, "hudson.node_monitors.TemporarySpaceMonitor" : null, "hudson.node_monitors.DiskSpaceMonitor" : null, "hudson.node_monitors.ClockMonitor" : null }

      , "numExecutors" : 1, "offline" : true, "offlineCause" : { "cause" : {
      Status Code: 500

      Exception: org.kohsuke.stapler.export.NotExportableException: class java.net.SocketException doesn't have @ExportedBean
      Stacktrace:
      javax.servlet.ServletException: org.kohsuke.stapler.export.NotExportableException: class java.net.SocketException doesn't have @ExportedBean
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:615)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:487)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:164)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
      at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
      at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:47)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
      at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:227)
      at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:722)
      Caused by: org.kohsuke.stapler.export.NotExportableException: class java.net.SocketException doesn't have @ExportedBean
      at org.kohsuke.stapler.export.Model.<init>(Model.java:71)
      at org.kohsuke.stapler.export.ModelBuilder.get(ModelBuilder.java:48)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:225)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:137)
      at org.kohsuke.stapler.export.Property.writeTo(Property.java:114)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:187)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:232)
      at org.kohsuke.stapler.export.Property.writeValue(Property.java:137)
      at org.kohsuke.stapler.export.Property.writeTo(Property.java:114)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:187)
      at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:182)
      at org.kohsuke.stapler.export.Model.writeTo(Model.java:154)
      at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:222)
      at hudson.model.Api.doJson(Api.java:193)
      at sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573)
      ... 63 more

      Generated by Stapler at Fri Mar 15 10:28:16 EDT 2013

        Attachments

          Issue Links

            Activity

            Hide
            evernat evernat added a comment -

            Is it reproduced with a recent Jenkins version?

            Show
            evernat evernat added a comment - Is it reproduced with a recent Jenkins version?
            Hide
            daonb benny daon added a comment -

            Bump!

            It happens to me with Jenkins 1.565. I'm using Python's jenkinsapi, which in turn send an API request with depth=1. When the job is successful it all works fine, when the job fails, I get a 500 error, similar to above.

            Show
            daonb benny daon added a comment - Bump! It happens to me with Jenkins 1.565. I'm using Python's jenkinsapi, which in turn send an API request with depth=1. When the job is successful it all works fine, when the job fails, I get a 500 error, similar to above.
            Hide
            danielbeck Daniel Beck added a comment -

            Appears to duplicate JENKINS-24452 (which has the better stack trace).

            Show
            danielbeck Daniel Beck added a comment - Appears to duplicate JENKINS-24452 (which has the better stack trace).

              People

              • Assignee:
                Unassigned
                Reporter:
                djs Dan Savilonis
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: