Last night, we restarted one of our Hudson nodes and started getting the following error when trying to run a Perforce build:
Started by user vaustje Building remotely on node4 Using remote perforce client: SOME_CLIENT Caught exception communicating with perforce. No output for: p4 workspace -o SOME_CLIENT com.tek42.perforce.PerforceException: No output for: p4 workspace -o SOME_CLIENT at com.tek42.perforce.parse.AbstractPerforceTemplate.getPerforceResponse(AbstractPerforceTemplate.java:314) at com.tek42.perforce.parse.Workspaces.getWorkspace(Workspaces.java:53) at hudson.plugins.perforce.PerforceSCM.getPerforceWorkspace(PerforceSCM.java:671) at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:294) at hudson.model.AbstractProject.checkout(AbstractProject.java:1003) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:428) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:376) at hudson.model.Run.run(Run.java:1174) at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:303) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:123) Finished: FAILURE
While we first suspected that there was an error running the
p4command on the remote machine, it turned out that p4 was not getting executed at all. What happened was, before restarting the node we had changed the .bashrc file and accidentally removed the location of our
p4executable from the path. Then, when the node was restarted the Hudson executor could no longer find the executable and thus failed with a very unintuitive message. (For some reason, specifying the explicit path to the executable via “Path to p4 executable” in the job config had no effect–see this JIRA issue) After fixing the PATH variable on the machine and restarting, our issue was resolved.
In general, you can check the value of the PATH variable, and other variables, on the Hudson nodes by going to Hudson » nodes » nodename and clicking on Log.