Project will fail on "mkdir" on remote disk.

已查看 1,243 次
跳至第一个未读帖子

Macpaul Lin

未读,
2012年6月14日 09:56:242012/6/14
收件人 jenkins...@googlegroups.com
Hi, 
I have another 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 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-remote-disk 

And the relative source code in Jenkins is:

    /**

      * Creates this directory.

     */

    public void mkdirs() throws IOException, InterruptedException {

        if(!act(new FileCallable<Boolean>() {

            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);

    }


Sami Tikka

未读,
2012年6月19日 14:53:532012/6/19
收件人 jenkins...@googlegroups.com
回复全部
回复作者
转发
0 个新帖子