-
Bug
-
Resolution: Unresolved
-
Major
-
Hardware:
Running in Amazon EC2
OS:
Amazon Linux AMI release 2013.09
Linux ####### 3.4.62-53.42.amzn1.x86_64 #1 SMP ####### x86_64 x86_64 x86_64 GNU/Linux
Java:
java version "1.7.0_51"
OpenJDK Runtime Environment (amzn-2.4.4.1.34.amzn1-x86_64 u51-b02)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
Jenkins:
1.509.1Hardware: Running in Amazon EC2 OS: Amazon Linux AMI release 2013.09 Linux ####### 3.4.62-53.42.amzn1.x86_64 #1 SMP ####### x86_64 x86_64 x86_64 GNU/Linux Java: java version "1.7.0_51" OpenJDK Runtime Environment (amzn-2.4.4.1.34.amzn1-x86_64 u51-b02) OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode) Jenkins: 1.509.1
I have a deployment pipeline setup that is used to push a deployment through. I use the build-pipeline plugin. There are four build steps in the deployment pipeline. Step #1 starts automatically, Step #2 starts automatically when Step #1 successfully completes. Step #3 is manually triggered when the build is verified to be working correctly. Step #1 and Step #2 finished correctly, but when I click on the "Manually start build" trigger, it does not start the build.
When I look into the logs, I am seeing the following stack trace every time that I push the button to manually trigger a build for Step #3:
Mar 10, 2014 8:53:36 PM winstone.Logger logInternal
WARNING: Untrapped Error in Servlet
java.lang.IllegalArgumentException: Failed to instantiate int from {"cause":null,"localizedMessage":"","message":"","stackTrace":[
,
{"className":"au.com.centrumsystems.hudson.plugin.buildpipeline.BuildPipelineView","fileName":"BuildPipelineView.java","lineNumber":411,"methodName":"triggerManualBuild","nativeMethod":false},
{"className":"sun.reflect.NativeMethodAccessorImpl","fileName":"NativeMethodAccessorImpl.java","lineNumber":-2,"methodName":"invoke0","nativeMethod":true},
{"className":"sun.reflect.NativeMethodAccessorImpl","fileName":"NativeMethodAccessorImpl.java","lineNumber":57,"methodName":"invoke","nativeMethod":false},
{"className":"sun.reflect.DelegatingMethodAccessorImpl","fileName":"DelegatingMethodAccessorImpl.java","lineNumber":43,"methodName":"invoke","nativeMethod":false},
{"className":"java.lang.reflect.Method","fileName":"Method.java","lineNumber":606,"methodName":"invoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Function$InstanceFunction","fileName":"Function.java","lineNumber":288,"methodName":"invoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Function","fileName":"Function.java","lineNumber":151,"methodName":"bindAndInvoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Function","fileName":"Function.java","lineNumber":90,"methodName":"bindAndInvokeAndServeResponse","nativeMethod":false},
{"className":"org.kohsuke.stapler.MetaClass$JavaScriptProxyMethodDispatcher","fileName":"MetaClass.java","lineNumber":439,"methodName":"doDispatch","nativeMethod":false},
{"className":"org.kohsuke.stapler.NameBasedDispatcher","fileName":"NameBasedDispatcher.java","lineNumber":53,"methodName":"dispatch","nativeMethod":false},
{"className":"org.kohsuke.stapler.Stapler","fileName":"Stapler.java","lineNumber":677,"methodName":"tryInvoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Stapler","fileName":"Stapler.java","lineNumber":770,"methodName":"invoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.MetaClass$12","fileName":"MetaClass.java","lineNumber":384,"methodName":"dispatch","nativeMethod":false},
{"className":"org.kohsuke.stapler.Stapler","fileName":"Stapler.java","lineNumber":677,"methodName":"tryInvoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Stapler","fileName":"Stapler.java","lineNumber":770,"methodName":"invoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Stapler","fileName":"Stapler.java","lineNumber":736,"methodName":"tryInvoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Stapler","fileName":"Stapler.java","lineNumber":770,"methodName":"invoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Stapler","fileName":"Stapler.java","lineNumber":583,"methodName":"invoke","nativeMethod":false},
{"className":"org.kohsuke.stapler.Stapler","fileName":"Stapler.java","lineNumber":177,"methodName":"service","nativeMethod":false},
{"className":"javax.servlet.http.HttpServlet","fileName":"HttpServlet.java","lineNumber":45,"methodName":"service","nativeMethod":false},
{"className":"winstone.ServletConfiguration","fileName":"ServletConfiguration.java","lineNumber":248,"methodName":"execute","nativeMethod":false},
{"className":"winstone.RequestDispatcher","fileName":"RequestDispatcher.java","lineNumber":333,"methodName":"forward","nativeMethod":false},
{"className":"winstone.RequestDispatcher","fileName":"RequestDispatcher.java","lineNumber":376,"methodName":"doFilter","nativeMethod":false},
{"className":"hudson.util.PluginServletFilter$1","fileName":"PluginServletFilter.java","lineNumber":95,"methodName":"doFilter","nativeMethod":false},
{"className":"hudson.util.PluginServletFilter","fileName":"PluginServletFilter.java","lineNumber":87,"methodName":"doFilter","nativeMethod":false},
{"className":"winstone.FilterConfiguration","fileName":"FilterConfiguration.java","lineNumber":194,"methodName":"execute","nativeMethod":false},
{"className":"winstone.RequestDispatcher","fileName":"RequestDispatcher.java","lineNumber":366,"methodName":"doFilter","nativeMethod":false},
{"className":"hudson.security.csrf.CrumbFilter","fileName":"CrumbFilter.java","lineNumber":48,"methodName":"doFilter","nativeMethod":false},
{"className":"winstone.FilterConfiguration","fileName":"FilterConfiguration.java","lineNumber":194,"methodName":"execute","nativeMethod":false},
{"className":"winstone.RequestDispatcher","fileName":"RequestDispatcher.java","lineNumber":366,"methodName":"doFilter","nativeMethod":false},
{"className":"hudson.security.ChainedServletFilter$1","fileName":"ChainedServletFilter.java","lineNumber":84,"methodName":"doFilter","nativeMethod":false},
{"className":"hudson.security.ChainedServletFilter","fileName":"ChainedServletFilter.java","lineNumber":76,"methodName":"doFilter","nativeMethod":false},
{"className":"hudson.security.HudsonFilter","fileName":"HudsonFilter.java","lineNumber":164,"methodName":"doFilter","nativeMethod":false},
{"className":"winstone.FilterConfiguration","fileName":"FilterConfiguration.java","lineNumber":194,"methodName":"execute","nativeMethod":false},
{"className":"winstone.RequestDispatcher","fileName":"RequestDispatcher.java","lineNumber":366,"methodName":"doFilter","nativeMethod":false},
{"className":"org.kohsuke.stapler.compression.CompressionFilter","fileName":"CompressionFilter.java","lineNumber":50,"methodName":"doFilter","nativeMethod":false},
{"className":"winstone.FilterConfiguration","fileName":"FilterConfiguration.java","lineNumber":194,"methodName":"execute","nativeMethod":false},
{"className":"winstone.RequestDispatcher","fileName":"RequestDispatcher.java","lineNumber":366,"methodName":"doFilter","nativeMethod":false},
{"className":"hudson.util.CharacterEncodingFilter","fileName":"CharacterEncodingFilter.java","lineNumber":81,"methodName":"doFilter","nativeMethod":false},
{"className":"winstone.FilterConfiguration","fileName":"FilterConfiguration.java","lineNumber":194,"methodName":"execute","nativeMethod":false},
{"className":"winstone.RequestDispatcher","fileName":"RequestDispatcher.java","lineNumber":366,"methodName":"doFilter","nativeMethod":false},
{"className":"winstone.RequestDispatcher","fileName":"RequestDispatcher.java","lineNumber":331,"methodName":"forward","nativeMethod":false},
{"className":"winstone.RequestHandlerThread","fileName":"RequestHandlerThread.java","lineNumber":227,"methodName":"processRequest","nativeMethod":false},
{"className":"winstone.RequestHandlerThread","fileName":"RequestHandlerThread.java","lineNumber":150,"methodName":"run","nativeMethod":false},
{"className":"java.util.concurrent.Executors$RunnableAdapter","fileName":"Executors.java","lineNumber":471,"methodName":"call","nativeMethod":false},
{"className":"java.util.concurrent.FutureTask","fileName":"FutureTask.java","lineNumber":262,"methodName":"run","nativeMethod":false},
{"className":"winstone.BoundedExecutorService$1","fileName":"BoundedExecutorService.java","lineNumber":77,"methodName":"run","nativeMethod":false},
{"className":"java.util.concurrent.ThreadPoolExecutor","fileName":"ThreadPoolExecutor.java","lineNumber":1145,"methodName":"runWorker","nativeMethod":false},
{"className":"java.util.concurrent.ThreadPoolExecutor$Worker","fileName":"ThreadPoolExecutor.java","lineNumber":615,"methodName":"run","nativeMethod":false},
{"className":"java.lang.Thread","fileName":"Thread.java","lineNumber":744,"methodName":"run","nativeMethod":false}],"suppressed":[]}
at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:596)
at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:391)
at org.kohsuke.stapler.MetaClass$JavaScriptProxyMethodDispatcher.doDispatch(MetaClass.java:437)
at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:384)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:677)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:736)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:770)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:583)
at org.kohsuke.stapler.Stapler.service(Stapler.java:177)
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:48)
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.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.run(FutureTask.java:262)
at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.kohsuke.stapler.NoStaplerConstructorException: There's no @DataBoundConstructor on any constructor of int
at org.kohsuke.stapler.ClassDescriptor.loadConstructorParamNames(ClassDescriptor.java:176)
at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:575)
... 43 more
Some more background on this issue:
Our Jenkins instance is refreshed periodically. The Jenkins machine copies over all of the configuration, backs up the configuration in source control, spins up a new machine, and builds it from scratch. For the most part, slight deviations are detected, but hey, things happen, and I am by no means perfect.
We never terminated the old Jenkins instance until we can successfully build with the new instance. This allows us to determine if failures happen, we can quick do a quick rollback, and the deployments never skip a beat.
Here is what we observed:
Our new instance was unable to manually trigger Step #3 in the build pipeline. Comparing the old instance with the new instance, the old Jenkins was running build-pipeline plugin version 1.3.3. The new Jenkins instance was running build-pipeline plugin version 1.4.2.
How to fix:
It was observed that downgrading the plugin to version 1.3.3 fixed the problem. Jenkins needed to get restarted for the changes to take effect, but it unblocked us.