Project will fail on "mkdir" on remote disk.

1,243 views
Skip to first unread message

Macpaul Lin

unread,
Jun 14, 2012, 9:56:24 AM6/14/12
to 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

unread,
Jun 19, 2012, 2:53:53 PM6/19/12
to jenkins...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages