-
Bug
-
Resolution: Unresolved
-
Major
-
Jenkins is installed on Windows System and trying to download code to a remote disk. And the disk is on a Linux or MAC system.
Hi,
I have a problem - which is almost the same problem of this issue
about mkdir/open files on remote disk.
Currently I'm using Jenkins ver. 1.467 and 1.470 with Windows XP 32bit.
When I want to checkout source code to remote disk whether it is on MAC OS
or Linux, I'll get mkdir fail.
I'm very sure java.exe, jenkins.exe, git.exe, p4.exe are executing as my
account in Windows XP.
And this account has right to read/write/mkdir/delete the files and
directories in the remote disk.
It seems this problem exists a very long time.
Started by user anonymous
Building in workspace Z:\PC12010025
java.io.IOException: Failed to mkdirs: Z:\PC12010025
at hudson.FilePath.mkdirs(FilePath.java:901)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1216)
at
hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:587)
at
hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:476)
at hudson.model.Run.run(Run.java:1438)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at
hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:239)
Finished: FAILURE
There are other users encountered this problem like
http://serverfault.com/questions/308774/how-to-make-hudson-write-to-r...
And the relative source code in Jenkins is:
/**
- Creates this directory.
*/
public void mkdirs() throws IOException, InterruptedException {
if(!act(new FileCallable<Boolean>()Unknown macro: { public Boolean invoke(File f, VirtualChannel channel) throws IOException, InterruptedException { if(f.mkdirs() || f.exists()) return true; // OK // following Ant <mkdir> task to avoid possible race condition. Thread.sleep(10); return f.mkdirs() || f.exists(); } }))
throw new IOException("Failed to mkdirs: "+remote);
}
I have found a workaround by using "\\NAS\PC12010025\workspace" to replace "Z:\PC12010025\workspace" to avoid mkdir fail.
However, when you use perforce-plugin with this workaround, the perforce plugin cannot take "\\NAS\PC12010025\workspace" as its root directory.
The string will be converted as "\NAS\PC12010025\workspace" which is not correct when p4.exe sync source code on windows system.
Whether you configured the string like "\\\\NAS\PC12010025\workspace" or "////NAS/PC12010025/workspace", it will finally converted as "\NAS\PC12010025\workspace.
So there are 2 problems related to this bug.