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

Failed to write defaultParameterValue: IAE from ExtensibleChoiceParameterDefinition.createValueCommon

    XMLWordPrintable

    Details

    • Similar Issues:
    • Epic Link:
    • Sprint:
      arctic, tasman, tethys

      Description

      Context
      If a plugin’s Action fails to serialize it fails the serialization of the rest response. Just like the remote APIs, Blue Ocean returns serialized Actions for many of its responses.

      For Blue Ocean this is incredibly important as a failed REST call can cause the entire UI to fail and the blame is assigned to Blue Ocean rather than the plugin that threw the exception. There are thousands of plugins and 1000s of ways to make the UI fall over.

      In Scope

      • If an Actions property fails to serialize then the serialized action should not be visible in the response
        • Could we return the error somehow without failing the whole request? We might want to let the user know if we cant render that action (e.g. Test screen shouldn't look like there are no tests if the action breaks)
      • When serialization failure occurs, the stack trace is logged along with the identity of the plugin providing the action and a link to its wiki page explaining how to file a bug.

      Original request
      Getting a 500 error when attempting to hit the blue/rest service with Multibranch Pipeline. Looks like it might be an issue with Extensible Choice Paramater plugin.

      java.io.IOException: Failed to write defaultParameterValue
      	at org.kohsuke.stapler.export.Property.safeGetValue(Property.java:151)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:126)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:279)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:222)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:168)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:139)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:135)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:279)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:222)
      	at org.kohsuke.stapler.export.Property.writeValue(Property.java:168)
      	at org.kohsuke.stapler.export.Property.writeTo(Property.java:139)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:227)
      	at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
      	at org.kohsuke.stapler.export.Model.writeTo(Model.java:198)
      	at org.kohsuke.stapler.ResponseImpl.writeOne(ResponseImpl.java:285)
      	at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:273)
      	at hudson.model.Api.doJson(Api.java:211)
      	at io.jenkins.blueocean.rest.pageable.PagedResponse$Processor$1.generateResponse(PagedResponse.java:63)
      	at org.kohsuke.stapler.HttpResponseRenderer$Default.handleHttpResponse(HttpResponseRenderer.java:124)
      	at org.kohsuke.stapler.HttpResponseRenderer$Default.generateResponse(HttpResponseRenderer.java:69)
      	at org.kohsuke.stapler.Function.renderResponse(Function.java:119)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:102)
      	at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:686)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.MetaClass$11.dispatch(MetaClass.java:380)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
      	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:206)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:95)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	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 jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
      	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 jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
      	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:67)
      	at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      	at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
      	at org.eclipse.jetty.server.Server.handle(Server.java:499)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
      	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
      	at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.lang.Thread.run(Unknown Source)
      Caused by: java.lang.reflect.InvocationTargetException
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      	at java.lang.reflect.Method.invoke(Unknown Source)
      	at org.kohsuke.stapler.export.MethodProperty.getValue(MethodProperty.java:66)
      	at org.kohsuke.stapler.export.Property.safeGetValue(Property.java:145)
      	... 102 more
      Caused by: java.lang.IllegalArgumentException: Illegal choice: 
      	at jp.ikedam.jenkins.plugins.extensible_choice_parameter.ExtensibleChoiceParameterDefinition.createValueCommon(ExtensibleChoiceParameterDefinition.java:397)
      	at jp.ikedam.jenkins.plugins.extensible_choice_parameter.ExtensibleChoiceParameterDefinition.createValue(ExtensibleChoiceParameterDefinition.java:430)
      	at jp.ikedam.jenkins.plugins.extensible_choice_parameter.ExtensibleChoiceParameterDefinition.getDefaultParameterValue(ExtensibleChoiceParameterDefinition.java:450)
      	... 108 more
      

        Attachments

          Issue Links

            Activity

            Hide
            jamesdumay James Dumay added a comment -

            Sterling Heibeck thanks for this bug report. What version of the Extensible Choice Paramater plugin do you have installed?

            Show
            jamesdumay James Dumay added a comment - Sterling Heibeck thanks for this bug report. What version of the Extensible Choice Paramater plugin do you have installed?
            Hide
            sheibeck Sterling Heibeck added a comment -

            Version 1.3.3

            Show
            sheibeck Sterling Heibeck added a comment - Version 1.3.3
            Hide
            jamesdumay James Dumay added a comment -

            Thanks ill get someone to take a look.

            Show
            jamesdumay James Dumay added a comment - Thanks ill get someone to take a look.
            Hide
            jamesdumay James Dumay added a comment -

            Ivan Meredith from Vivek Pandey "first we need to see why is it giving Illegal choice error and then submit a PR to that plugin."

            Show
            jamesdumay James Dumay added a comment - Ivan Meredith from Vivek Pandey "first we need to see why is it giving Illegal choice error and then submit a PR to that plugin."
            Hide
            michaelneale Michael Neale added a comment -

            Vivek Pandey perhaps Tom might be able to take a look at this after other things?

            Show
            michaelneale Michael Neale added a comment - Vivek Pandey perhaps Tom might be able to take a look at this after other things?
            Hide
            vivek Vivek Pandey added a comment -

            Michael Neale That will be great!

            Show
            vivek Vivek Pandey added a comment - Michael Neale That will be great!
            Hide
            jamesdumay James Dumay added a comment - - edited

            Sterling Heibeck do you have this configured for a freestyle job? What does your global settings look like?

            There's some missing information from the stacktrace. Would you be able to reproduce and get the stacktrace from the Jenkins server log?

            Show
            jamesdumay James Dumay added a comment - - edited Sterling Heibeck do you have this configured for a freestyle job? What does your global settings look like? There's some missing information from the stacktrace. Would you be able to reproduce and get the stacktrace from the Jenkins server log?
            Hide
            sheibeck Sterling Heibeck added a comment -

            I'm a bit swamped here, trying to get you a stack trace as soon as I can. It's hard to figure out which job specifically is causing the problem. I have about 40 different jobs in my instance, most of which are free-style jobs. I'm in process to swich them over to pipeline.

            Show
            sheibeck Sterling Heibeck added a comment - I'm a bit swamped here, trying to get you a stack trace as soon as I can. It's hard to figure out which job specifically is causing the problem. I have about 40 different jobs in my instance, most of which are free-style jobs. I'm in process to swich them over to pipeline.
            Hide
            jamesdumay James Dumay added a comment -

            I think we can solve misbehaving plugins once and for all with JENKINS-40088

            Show
            jamesdumay James Dumay added a comment - I think we can solve misbehaving plugins once and for all with JENKINS-40088
            Hide
            sheibeck Sterling Heibeck added a comment - - edited

            In case it's still important, I'm attaching a full log file where the error was reproduced. I wasn't sure what was all needed, so I'm including the full file. jenkins.err.log

            Latest error is around line 22795.

            Ah, I also just discovered the following which may shed some light on the issue: Choice Provider is set to 'System Groovy Choice Parameter' and the Default value was set to "<Top Most Option>". If I change the default value to another selection, the error goes away.

            Show
            sheibeck Sterling Heibeck added a comment - - edited In case it's still important, I'm attaching a full log file where the error was reproduced. I wasn't sure what was all needed, so I'm including the full file. jenkins.err.log Latest error is around line 22795. Ah, I also just discovered the following which may shed some light on the issue: Choice Provider is set to 'System Groovy Choice Parameter' and the Default value was set to "<Top Most Option>". If I change the default value to another selection, the error goes away.
            Hide
            jamesdumay James Dumay added a comment -

            Sterling Heibeck unrelated - looks like you need to increase your servers permgen BTW java.lang.OutOfMemoryError: PermGen space

            Show
            jamesdumay James Dumay added a comment - Sterling Heibeck unrelated - looks like you need to increase your servers permgen BTW java.lang.OutOfMemoryError: PermGen space
            Hide
            jamesdumay James Dumay added a comment -

            Sterling Heibeck ahh thanks for that. I think we're going to not serialize invalid actions as part of JENKINS-40088. This problem shouldn't happen in the future.

            Show
            jamesdumay James Dumay added a comment - Sterling Heibeck ahh thanks for that. I think we're going to not serialize invalid actions as part of JENKINS-40088 . This problem shouldn't happen in the future.
            Hide
            sheibeck Sterling Heibeck added a comment -

            Thanks! And yes, that PermaGen error has been my been. I'm in a windows environment and I have a ton of jobs and the thing keeps running into that issue. I'm working on moving everything over to pipelines, which hopefully will fix that!

            Show
            sheibeck Sterling Heibeck added a comment - Thanks! And yes, that PermaGen error has been my been. I'm in a windows environment and I have a ton of jobs and the thing keeps running into that issue. I'm working on moving everything over to pipelines, which hopefully will fix that!
            Hide
            michaelneale Michael Neale added a comment -

            Has the anaysis core plugin been fixed so it can serialize?

            Show
            michaelneale Michael Neale added a comment - Has the anaysis core plugin been fixed so it can serialize?
            Hide
            jamesdumay James Dumay added a comment -

            Michael Neale yes its fixed. There are others like the multi choice param plugin that barf. Any plugin could do this and bring the whole stack of cards down.

            Show
            jamesdumay James Dumay added a comment - Michael Neale yes its fixed. There are others like the multi choice param plugin that barf. Any plugin could do this and bring the whole stack of cards down.
            Hide
            jglick Jesse Glick added a comment -

            I am filing this under the plugin actually causing the error here, since it seems JENKINS-40088 is tracking the response to the error already.

            Show
            jglick Jesse Glick added a comment - I am filing this under the plugin actually causing the error here, since it seems JENKINS-40088 is tracking the response to the error already.
            Hide
            scm_issue_link SCM/JIRA link daemon added a comment -

            Code changed in jenkins
            User: ikedam
            Path:
            src/main/java/jp/ikedam/jenkins/plugins/extensible_choice_parameter/ExtensibleChoiceParameterDefinition.java
            src/test/java/jp/ikedam/jenkins/plugins/extensible_choice_parameter/ExtensibleChoiceParameterDefinitionJenkinsTest.java
            http://jenkins-ci.org/commit/extensible-choice-parameter-plugin/535d9d79337948fbbbefabb9189aad2d67cdd53d
            Log:
            [FIXED JENKINS-39647] `getDefaultParameterValue` should not fail

            Show
            scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: ikedam Path: src/main/java/jp/ikedam/jenkins/plugins/extensible_choice_parameter/ExtensibleChoiceParameterDefinition.java src/test/java/jp/ikedam/jenkins/plugins/extensible_choice_parameter/ExtensibleChoiceParameterDefinitionJenkinsTest.java http://jenkins-ci.org/commit/extensible-choice-parameter-plugin/535d9d79337948fbbbefabb9189aad2d67cdd53d Log: [FIXED JENKINS-39647] `getDefaultParameterValue` should not fail
            Hide
            ikedam ikedam added a comment -

            Fixed in extensible-choice 1.3.4.
            It will be available in the update center in a day.
            Please try that.

            Show
            ikedam ikedam added a comment - Fixed in extensible-choice 1.3.4. It will be available in the update center in a day. Please try that.
            Hide
            jamesdumay James Dumay added a comment -

            Nice one! Thanks

            Show
            jamesdumay James Dumay added a comment - Nice one! Thanks

              People

              Assignee:
              sheibeck Sterling Heibeck
              Reporter:
              sheibeck Sterling Heibeck
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: