-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Master on CentOS. Slaves on OS X, CentOS.
Java 1.7.0 update 45
We're using latest swarm plugin (1.10). We've seen this error in CentOS 6 and OS X on Java 1.7_45.
After a while, when starting a build it will fail with the following error. If one restarts the slave, the build will work for a bit, but eventually the slave will just start failing on every subsequent build.
Started by user lewis Building remotely on blah in workspace /Users/build/.jenkins/workspace/blah [ssh-agent] Using credentials git [ssh-agent] Looking for ssh-agent implementation... [ssh-agent] Java/JNR ssh-agent [ssh-agent] Started. Cloning the remote Git repository Cloning repository git://blah/ios/blah.git git --version git version 1.8.4.2 ERROR: Failed to clean the workspace ERROR: Error cloning remote repo 'origin' hudson.plugins.git.GitException: java.io.IOException: Remote call on blah failed at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:171) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.invoke(RemoteGitImpl.java:130) at com.sun.proxy.$Proxy72.execute(Unknown Source) at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:828) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:861) at hudson.model.AbstractProject.checkout(AbstractProject.java:1412) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:652) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:557) at hudson.model.Run.execute(Run.java:1679) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:230) Caused by: java.io.IOException: Remote call on blah failed at hudson.remoting.Channel.call(Channel.java:723) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler.execute(RemoteGitImpl.java:144) ... 16 more Caused by: java.lang.VerifyError: Bad type on operand stack Exception Details: Location: org/apache/commons/codec/binary/Base64OutputStream.<init>(Ljava/io/OutputStream;Z)V @11: invokespecial Reason: Type 'org/apache/commons/codec/binary/Base64' (current frame, stack[2]) is not assignable to 'org/apache/commons/codec/binary/BaseNCodec' Current Frame: bci: @11 flags: { flagThisUninit } locals: { uninitializedThis, 'java/io/OutputStream', integer } stack: { uninitializedThis, 'java/io/OutputStream', 'org/apache/commons/codec/binary/Base64', integer } Bytecode: 0000000: 2a2b bb00 0259 03b7 0003 1cb7 0004 b1 at hudson.console.ConsoleNote.encodeToBytes(ConsoleNote.java:180) at hudson.console.ConsoleNote.encodeTo(ConsoleNote.java:158) at hudson.util.StreamTaskListener.annotate(StreamTaskListener.java:157) at hudson.util.StreamTaskListener._error(StreamTaskListener.java:132) at hudson.util.StreamTaskListener.error(StreamTaskListener.java:141) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:276) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:151) at org.jenkinsci.plugins.gitclient.RemoteGitImpl$CommandInvocationHandler$1.call(RemoteGitImpl.java:144) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at hudson.remoting.Engine$1$1.run(Engine.java:63) at java.lang.Thread.run(Thread.java:744)
I think this may be related to the swarm-plugin-with-dependencies jar. It includes an old version of commons-codec library. I build a custom version of this with commons-codec explicitely set to 1.8 and have not experienced the issue yet.
I think this fixes it https://github.com/jenkinsci/swarm-plugin/pull/5