-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
Windows
When there is an error in the global configuration that injects broken environment variables (blank name for the variable) the Perforce-plugin fails with:
Started by user testuser
[EnvInject] - Loading node environment variables.
Building remotely on testslave in workspace E:\build_e\workspace\Test_Component
Using remote perforce client: testclient-12345678
[Test_Component] $ C:\apps\perforce\p4.exe workspace -o -S //test/test_stream testclient-12345678
Caught exception communicating with perforce. No output for: C:\apps\perforce\p4.exe workspace -o -S //test/test_stream testclient-12345678 com.tek42.perforce.PerforceException: No output for: C:\apps\perforce\p4.exe workspace -o -S //test/test_stream testclient-12345678
at com.tek42.perforce.parse.AbstractPerforceTemplate.getPerforceResponse(AbstractPerforceTemplate.java:384)
at com.tek42.perforce.parse.AbstractPerforceTemplate.getPerforceResponse(AbstractPerforceTemplate.java:292)
at com.tek42.perforce.parse.Workspaces.getWorkspace(Workspaces.java:61)
at hudson.plugins.perforce.PerforceSCM.getPerforceWorkspace(PerforceSCM.java:1528)
at hudson.plugins.perforce.PerforceSCM.getPerforceWorkspace(PerforceSCM.java:1489)
at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:795)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1195)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:579)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:468)
at hudson.model.Run.run(Run.java:1408)
at hudson.model.Build.run(Build.java:110)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:238)
ERROR: Unable to communicate with perforce. No output for: C:\apps\perforce\p4.exe workspace -o -S //test/test_stream testclient-12345678
Finished: FAILURE
The correct error would be something like, can't "run the command".
Because the actual error is something like:
Caused by: java.io.IOException: Cannot run program "cmd.exe" (in directory "E:\build_e\workspace\Test_Component"): CreateProcess error=87, The parameter is incorrect
at java.lang.ProcessBuilder.start(Unknown Source)
at hudson.Proc$LocalProc.<init>(Proc.java:244)
The error handling completely hides certain types of errors, and just says 'No output for...'
src\main\java\com\tek42\perforce\parse\AbstractPerforceTemplate.java:
throw new PerforceException("No output for: " + debugCmd);