• Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • git-plugin

      (as an aside, I love the idea of Jenkins. Thanks for your hard work!)

      New user so it's possible I may have missed something basic, but I've been reading/testing for 4+ hours now.

      I don't even seem to be able to get to the point where I can pull the source from github (it fails while cleaning the workspace).

      I have tried reinstalling Jenkins from Program Files (x86) to C:\Jenkins, and then I eventually specified the specific workspace below of E:\JenkinsWorkspace to test it out. All are failing, so I ruled out spaces and extra-long paths I think.

      Happy to provide any other information to help troubleshoot. Looking forward to getting this solved!

      Build Output Log
      tarted by user anonymous
      Building in workspace E:\JenkinsWorkspace
      Checkout:JenkinsWorkspace / E:\JenkinsWorkspace - hudson.remoting.LocalChannel@1c1b26c
      Using strategy: Default
      Cloning the remote Git repository
      Cloning repository https://github.com/SeanKilleen/Skillustrator
      git --version
      Process leaked file descriptors. See http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build for more information
      ERROR: Failed to clean the workspace
      java.io.IOException: Unable to delete E:\JenkinsWorkspace
      	at hudson.Util.deleteFile(Util.java:243)
      	at hudson.Util.deleteRecursive(Util.java:293)
      	at hudson.FilePath$11.invoke(FilePath.java:982)
      	at hudson.FilePath$11.invoke(FilePath.java:980)
      	at hudson.FilePath.act(FilePath.java:851)
      	at hudson.FilePath.act(FilePath.java:824)
      	at hudson.FilePath.deleteRecursive(FilePath.java:980)
      	at hudson.plugins.git.GitAPI.clone(GitAPI.java:241)
      	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1044)
      	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:986)
      	at hudson.FilePath.act(FilePath.java:851)
      	at hudson.FilePath.act(FilePath.java:824)
      	at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:986)
      	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1142)
      	at hudson.model.AbstractProject.checkout(AbstractProject.java:1325)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
      	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
      	at hudson.model.Run.execute(Run.java:1516)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:236)
      ERROR: Error cloning remote repo 'origin' : Failed to delete workspace
      hudson.plugins.git.GitException: Failed to delete workspace
      	at hudson.plugins.git.GitAPI.clone(GitAPI.java:244)
      	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1044)
      	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:986)
      	at hudson.FilePath.act(FilePath.java:851)
      	at hudson.FilePath.act(FilePath.java:824)
      	at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:986)
      	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1142)
      	at hudson.model.AbstractProject.checkout(AbstractProject.java:1325)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
      	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
      	at hudson.model.Run.execute(Run.java:1516)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:236)
      Caused by: java.io.IOException: Unable to delete E:\JenkinsWorkspace
      	at hudson.Util.deleteFile(Util.java:243)
      	at hudson.Util.deleteRecursive(Util.java:293)
      	at hudson.FilePath$11.invoke(FilePath.java:982)
      	at hudson.FilePath$11.invoke(FilePath.java:980)
      	at hudson.FilePath.act(FilePath.java:851)
      	at hudson.FilePath.act(FilePath.java:824)
      	at hudson.FilePath.deleteRecursive(FilePath.java:980)
      	at hudson.plugins.git.GitAPI.clone(GitAPI.java:241)
      	... 14 more
      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:1056)
      	at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:986)
      	at hudson.FilePath.act(FilePath.java:851)
      	at hudson.FilePath.act(FilePath.java:824)
      	at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:986)
      	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1142)
      	at hudson.model.AbstractProject.checkout(AbstractProject.java:1325)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
      	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
      	at hudson.model.Run.execute(Run.java:1516)
      	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:236)
      

          [JENKINS-15852] Unable to delete workspace

          Sean Killeen created issue -

          Sean Killeen added a comment -

          Another item of note: This spawns wish.exe (a part of msysgit) and it fails to close. It leaves a handle open on that directory. However, I've tried manually shutting down all instances of wish.exe and double-checking with ProcExp that no handle includes that path, to no avail.

          Sean Killeen added a comment - Another item of note: This spawns wish.exe (a part of msysgit) and it fails to close. It leaves a handle open on that directory. However, I've tried manually shutting down all instances of wish.exe and double-checking with ProcExp that no handle includes that path, to no avail.

          Mark Waite added a comment -

          Windows refuses to remove a directory which is busy, either because there is a file open in the directory, or a program is using that directory as its current working directory.

          One possible solution in this case is to choose to not clean the workspace from the git plugin, but rather perform the clean operation from within your build scripts where you can intentionally ignore this failure case.

          Mark Waite added a comment - Windows refuses to remove a directory which is busy, either because there is a file open in the directory, or a program is using that directory as its current working directory. One possible solution in this case is to choose to not clean the workspace from the git plugin, but rather perform the clean operation from within your build scripts where you can intentionally ignore this failure case.

          Same issue: Win XP. Jenkins 1.494, Jenkins Git Plugin 1.1.26. Git version 1.8.0.msysgit.0. Brand new job. Workspace never existed before running this the first time, so Jenkins creates it and then tries to delete it. "Wipe out workspace before build" option is NOT selected. Git executable path: C:\Git\cmd\gitk.cmd (but I've also tried C:\Git\bin\git.exe with the same issues).

          Daniel Kirkdorffer added a comment - Same issue: Win XP. Jenkins 1.494, Jenkins Git Plugin 1.1.26. Git version 1.8.0.msysgit.0. Brand new job. Workspace never existed before running this the first time, so Jenkins creates it and then tries to delete it. "Wipe out workspace before build" option is NOT selected. Git executable path: C:\Git\cmd\gitk.cmd (but I've also tried C:\Git\bin\git.exe with the same issues).

          Looks like the code in question is https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitAPI.java#L247 that is trying to recursively delete the workspace before the clone.

          Daniel Kirkdorffer added a comment - Looks like the code in question is https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitAPI.java#L247 that is trying to recursively delete the workspace before the clone.

          Perhaps of relevance: I am running Jenkins within Tomcat 7.

          Daniel Kirkdorffer added a comment - Perhaps of relevance: I am running Jenkins within Tomcat 7.
          Daniel Kirkdorffer made changes -
          Link New: This issue is related to JENKINS-15331 [ JENKINS-15331 ]

          After further testing I switched back to using C:\Git\bin\git.exe instead of C:\Git\cmd\gitk.cmd for my Git command, and that appears to have corrected the problem for me. Why this might be I do not know.

          Daniel Kirkdorffer added a comment - After further testing I switched back to using C:\Git\bin\git.exe instead of C:\Git\cmd\gitk.cmd for my Git command, and that appears to have corrected the problem for me. Why this might be I do not know.

          Mark Waite added a comment -

          I would be quite surprised if the switch from git.cmd to git.exe was the root of the change, since the recursive remove step that is failing is not invoking either of them at the point of failure. It is possible that the results from git.cmd are different enough from those of git.exe that the path is not being executed, but that would be very surprising.

          I would guess (just guessing) that the deletion failure is due to Windows having a file busy in the directory and the timing is variable so that sometimes it works and sometimes it doesn't. I've seen cases where Windows virus scanners will have a file locked during a scan and other programs will be unable to delete those files.

          If it recurs, you might consider disabling virus scanning in the Jenkins workspace, just to see if that reduces the frequency.

          Mark Waite added a comment - I would be quite surprised if the switch from git.cmd to git.exe was the root of the change, since the recursive remove step that is failing is not invoking either of them at the point of failure. It is possible that the results from git.cmd are different enough from those of git.exe that the path is not being executed, but that would be very surprising. I would guess (just guessing) that the deletion failure is due to Windows having a file busy in the directory and the timing is variable so that sometimes it works and sometimes it doesn't. I've seen cases where Windows virus scanners will have a file locked during a scan and other programs will be unable to delete those files. If it recurs, you might consider disabling virus scanning in the Jenkins workspace, just to see if that reduces the frequency.

          We already had an exclusion setup for the Jenkins workspaces. My monitoring of the workspace folder using Process Explorer showed that wish.exe was the one holding on to it. I don't believe that gets called unless I use gitk.cmd.

          Daniel Kirkdorffer added a comment - We already had an exclusion setup for the Jenkins workspaces. My monitoring of the workspace folder using Process Explorer showed that wish.exe was the one holding on to it. I don't believe that gets called unless I use gitk.cmd.

            Unassigned Unassigned
            seankilleen Sean Killeen
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated: