We have a Jenkins CI server (and a number of slaves) running on Windows machines. Our code repository is located in StarTeam (separate StarTeam server) which we poll frequently. Normally this works well!
However, every so often we see an IOException - remote operation failed (see below) which fails a build and thrashes the check-in history which makes it impossible to determine who checked-in what during the sub-sequent build. I need help in finding out why we keep seeing these errors:
Below is an example of the error, where the build is performed on a slave node:
Fjernbygger på machinename (...) in workspace ... java.io.IOException: remote file operation failed: (workspacename) at hudson.remoting.Channel@849755:machinename at hudson.FilePath.act(FilePath.java:916) at hudson.FilePath.act(FilePath.java:893) at hudson.plugins.starteam.StarTeamSCM.checkout(StarTeamSCM.java:131) at hudson.model.AbstractProject.checkout(AbstractProject.java:1251) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:604) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:513) at hudson.model.Run.execute(Run.java:1706) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:231) Caused by: java.io.IOException: Remote call on machinename failed at hudson.remoting.Channel.call(Channel.java:748) at hudson.FilePath.act(FilePath.java:909) ... 10 more Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.borland.starteam.impl.util.Platform at com.borland.starteam.impl.ClientContext.(Unknown Source) at com.borland.starteam.impl.Server.(Unknown Source) at com.starbase.starteam.Server.(Unknown Source) at hudson.plugins.starteam.StarTeamConnection.initialize(StarTeamConnection.java:196) at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:131) at hudson.plugins.starteam.StarTeamCheckoutActor.invoke(StarTeamCheckoutActor.java:30) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2474) 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(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at hudson.remoting.Engine$1$1.run(Engine.java:58) at java.lang.Thread.run(Unknown Source)
Is this related to Jenkins not being able to poll the starteam server? Is this related to a misconfiguration of the starteam plugin on the slave? The starteam client (2008 R2 I believe?) is installed on the master and on slave nodes. In addition I've also followed the instructions on this post regarding copying files to web-inf location on master node.
I need pointers as to where I should start looking for answers which would then hopefully shed more information. Let me know if there are vital details that I need to provide in order to clarify the question.
EDIT
This and this looks somewhat related. My issue is also resolved by rebooting the slave/restarting the Jenkins service running on them. So is this an issue because I'm running Jenkins as a service on the slave nodes? The service is running with the same user credentials on the slaves as on the master node. Or this is related to different JRE environments on the machines?