Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-12668

Slave uses wrong workspace for building a project and fails

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Component/s: core
    • Labels:
      None
    • Environment:
      Suse Linux 11.x 64 bit,
    • Similar Issues:

      Description

      I want the Jenkins master to build a small project on a slave.
      Slave and Master run Suse Linux.
      The same user (hans) which runs Jenkins is available on both machines and has rw permissions on the slave's remote working directory (/var/jenkins).
      The slave agent is launched on the slave ('ttvm3').

      Building the project locally works.

      When I configure the project to be build on the slave, it fails. The console output on the master is:

      Started by user anonymous
      Building on master in workspace /home/hans/.jenkins/jobs/testproject/workspace
      Checkout:workspace / /home/hans/.jenkins/jobs/testproject/workspace - hudson.remoting.LocalChannel@11b1e39
      Using strategy: Default
      Last Built Revision: Revision 97957e558fed7d0b116950e09dec1c248d1d0b54 (origin/HEAD, origin/master)
      Checkout:workspace / /home/hans/.jenkins/jobs/testproject/workspace - hudson.remoting.LocalChannel@11b1e39
      Fetching changes from 1 remote Git repository
      Fetching upstream changes from <<blablabla>>
      Commencing build of Revision 69e242182e55e57b56c836a9c3a34f0232e5d56c (origin/master)
      Checking out Revision 69e242182e55e57b56c836a9c3a34f0232e5d56c (origin/master)
      Triggering ttvm3
      ttvm3 completed with result FAILURE
      Finished: FAILURE

      The output on the slave for this build is:

      Started by upstream project "testproject" build number 29
      Building remotely on ttvm3 in workspace /ttvm3
      java.io.IOException: Failed to mkdirs: /ttvm3
      at hudson.FilePath.mkdirs(FilePath.java:847)
      at hudson.model.AbstractProject.checkout(AbstractProject.java:1193)
      at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:576)
      at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:465)
      at hudson.model.Run.run(Run.java:1409)
      at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:238)
      Finished: FAILURE

      It seems as if Jenkins wants to create a directory called "ttvm3" (which is the name of the slave) in the root directory of the slave.

      When I (just for the fun of it) create the directory /ttvm3 on the slave and build the project again, the output for this build on the slave is:

      Started by upstream project "testproject" build number 30
      Building remotely on ttvm3 in workspace /ttvm3
      Checkout:ttvm3 / /ttvm3 - hudson.remoting.Channel@c4931d:ttvm3
      Using strategy: Default
      Checkout:ttvm3 / /ttvm3 - hudson.remoting.LocalChannel@146c0f
      Cloning the remote Git repository
      Cloning repository origin
      ERROR: Failed to clean the workspace
      java.io.IOException: Unable to delete /ttvm3
      at hudson.Util.deleteFile(Util.java:237)
      at hudson.Util.deleteRecursive(Util.java:287)
      at hudson.FilePath$9.invoke(FilePath.java:856)
      at hudson.FilePath$9.invoke(FilePath.java:854)
      at hudson.FilePath.act(FilePath.java:788)
      at hudson.FilePath.act(FilePath.java:770)
      at hudson.FilePath.deleteRecursive(FilePath.java:854)
      at hudson.plugins.git.GitAPI.clone(GitAPI.java:205)
      at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1027)
      at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:968)
      at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2099)
      at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:287)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)
      ERROR: Error cloning remote repo 'origin' : Failed to delete workspace
      ERROR: Cause: Unable to delete /ttvm3
      Trying next repository
      ERROR: Could not clone repository
      FATAL: Could not clone
      hudson.plugins.git.GitException: Could not clone
      at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1042)
      at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:968)
      at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2099)
      at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:287)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
      at java.util.concurrent.FutureTask.run(FutureTask.java:138)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:619)

        Attachments

          Activity

          Hide
          kohsuke Kohsuke Kawaguchi added a comment -

          It looks as if the slave root directory is not properly configured, or the custom workspace is configured. Are you sure neither is the case?

          Show
          kohsuke Kohsuke Kawaguchi added a comment - It looks as if the slave root directory is not properly configured, or the custom workspace is configured. Are you sure neither is the case?
          Hide
          martin_naughton martin naughton added a comment -

          "When I (just for the fun of it) create the directory /ttvm3 on the slave and build the project again, the output for this build on the slave is:"

          You created the /ttvm3 using root permissions and not with the user hans. IF you did create it with hans then jenkins would be able to delete it.

          What settings do you have when configuring the node(slave) in jenkins.

          what is Remote FS root set to?

          What user is running the slave agent on ttvm3?

          Show
          martin_naughton martin naughton added a comment - "When I (just for the fun of it) create the directory /ttvm3 on the slave and build the project again, the output for this build on the slave is:" You created the /ttvm3 using root permissions and not with the user hans. IF you did create it with hans then jenkins would be able to delete it. What settings do you have when configuring the node(slave) in jenkins. what is Remote FS root set to? What user is running the slave agent on ttvm3?
          Hide
          martin_naughton martin naughton added a comment -

          update on this?

          Show
          martin_naughton martin naughton added a comment - update on this?

            People

            • Assignee:
              Unassigned
              Reporter:
              tasatbar tasat bar
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: