-
Bug
-
Resolution: Fixed
-
Minor
-
Linux master
Windows 2008R2 x64 slave
I see that issue happening on long paths. A workaround was to use drive mapping in order to reduce the length but it doesn't solve the issue and we came to the limit of path shortening possibilities.
Here's a stacktrace from a Matrix job:
https://qa.nuxeo.org/jenkins/job/nuxeo-master-fullbuild-part2-distribution-multios/218/Slave=MULTIDB_WINDOWS
08:59:26 Building remotely on tweedledum in workspace C:\Jenkins\workspace\nuxeo-master-fullbuild-part2-distribution-multios\Slave\MULTIDB_WINDOWS 08:59:26 Checkout:MULTIDB_WINDOWS / C:\Jenkins\workspace\nuxeo-master-fullbuild-part2-distribution-multios\Slave\MULTIDB_WINDOWS - hudson.remoting.Channel@4a58a509:tweedledum 08:59:26 Using strategy: Default 08:59:26 Last Built Revision: Revision 3676821964588c85aa8b71e288c743c24edd00a3 (origin/master) 08:59:27 Cloning the remote Git repository 08:59:27 Cloning repository git://github.com/nuxeo/nuxeo-distribution.git 08:59:27 git --version 08:59:27 git version 1.7.6.msysgit.0 08:59:27 ERROR: Failed to clean the workspace 08:59:27 java.io.IOException: Unable to delete C:\Jenkins\workspace\nuxeo-master-fullbuild-part2-distribution-multios\Slave\MULTIDB_WINDOWS\nuxeo-distribution-jboss\target\nuxeo-cap-5.7-SNAPSHOT-jboss\server\default\deploy\jbossws.sar\jbossws-management.war\META-INF\maven\org.jboss.ws.native\jbossws-native-management - files in dir: [C:\Jenkins\workspace\nuxeo-master-fullbuild-part2-distribution-multios\Slave\MULTIDB_WINDOWS\nuxeo-distribution-jboss\target\nuxeo-cap-5.7-SNAPSHOT-jboss\server\default\deploy\jbossws.sar\jbossws-management.war\META-INF\maven\org.jboss.ws.native\jbossws-native-management\pom.properties, C:\Jenkins\workspace\nuxeo-master-fullbuild-part2-distribution-multios\Slave\MULTIDB_WINDOWS\nuxeo-distribution-jboss\target\nuxeo-cap-5.7-SNAPSHOT-jboss\server\default\deploy\jbossws.sar\jbossws-management.war\META-INF\maven\org.jboss.ws.native\jbossws-native-management\pom.xml] 08:59:27 at hudson.Util.deleteFile(Util.java:238) 08:59:27 at hudson.Util.deleteRecursive(Util.java:289) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.FilePath$11.invoke(FilePath.java:910) 08:59:27 at hudson.FilePath$11.invoke(FilePath.java:908) 08:59:27 at hudson.FilePath.act(FilePath.java:842) 08:59:27 at hudson.FilePath.act(FilePath.java:824) 08:59:27 at hudson.FilePath.deleteRecursive(FilePath.java:908) 08:59:27 at hudson.plugins.git.GitAPI.clone(GitAPI.java:239) 08:59:27 at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1040) 08:59:27 at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:982) 08:59:27 at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2200) 08:59:27 at hudson.remoting.UserRequest.perform(UserRequest.java:118) 08:59:27 at hudson.remoting.UserRequest.perform(UserRequest.java:48) 08:59:27 at hudson.remoting.Request$2.run(Request.java:326) 08:59:27 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 08:59:27 at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 08:59:27 at java.util.concurrent.FutureTask.run(Unknown Source) 08:59:27 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 08:59:27 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 08:59:27 at hudson.remoting.Engine$1$1.run(Engine.java:60) 08:59:27 at java.lang.Thread.run(Unknown Source) 08:59:27 ERROR: Error cloning remote repo 'origin' : Failed to delete workspace 08:59:27 hudson.plugins.git.GitException: Failed to delete workspace 08:59:27 at hudson.plugins.git.GitAPI.clone(GitAPI.java:242) 08:59:27 at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1040) 08:59:27 at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:982) 08:59:27 at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2200) 08:59:27 at hudson.remoting.UserRequest.perform(UserRequest.java:118) 08:59:27 at hudson.remoting.UserRequest.perform(UserRequest.java:48) 08:59:27 at hudson.remoting.Request$2.run(Request.java:326) 08:59:27 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 08:59:27 at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 08:59:27 at java.util.concurrent.FutureTask.run(Unknown Source) 08:59:27 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 08:59:27 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 08:59:27 at hudson.remoting.Engine$1$1.run(Engine.java:60) 08:59:27 at java.lang.Thread.run(Unknown Source) 08:59:27 Caused by: java.io.IOException: Unable to delete C:\Jenkins\workspace\nuxeo-master-fullbuild-part2-distribution-multios\Slave\MULTIDB_WINDOWS\nuxeo-distribution-jboss\target\nuxeo-cap-5.7-SNAPSHOT-jboss\server\default\deploy\jbossws.sar\jbossws-management.war\META-INF\maven\org.jboss.ws.native\jbossws-native-management - files in dir: [C:\Jenkins\workspace\nuxeo-master-fullbuild-part2-distribution-multios\Slave\MULTIDB_WINDOWS\nuxeo-distribution-jboss\target\nuxeo-cap-5.7-SNAPSHOT-jboss\server\default\deploy\jbossws.sar\jbossws-management.war\META-INF\maven\org.jboss.ws.native\jbossws-native-management\pom.properties, C:\Jenkins\workspace\nuxeo-master-fullbuild-part2-distribution-multios\Slave\MULTIDB_WINDOWS\nuxeo-distribution-jboss\target\nuxeo-cap-5.7-SNAPSHOT-jboss\server\default\deploy\jbossws.sar\jbossws-management.war\META-INF\maven\org.jboss.ws.native\jbossws-native-management\pom.xml] 08:59:27 at hudson.Util.deleteFile(Util.java:238) 08:59:27 at hudson.Util.deleteRecursive(Util.java:289) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.Util.deleteContentsRecursive(Util.java:200) 08:59:27 at hudson.Util.deleteRecursive(Util.java:280) 08:59:27 at hudson.FilePath$11.invoke(FilePath.java:910) 08:59:27 at hudson.FilePath$11.invoke(FilePath.java:908) 08:59:27 at hudson.FilePath.act(FilePath.java:842) 08:59:27 at hudson.FilePath.act(FilePath.java:824) 08:59:27 at hudson.FilePath.deleteRecursive(FilePath.java:908) 08:59:27 at hudson.plugins.git.GitAPI.clone(GitAPI.java:239) 08:59:27 ... 13 more 08:59:27 Trying next repository 08:59:27 ERROR: Could not clone repository 08:59:27 FATAL: Could not clone 08:59:27 hudson.plugins.git.GitException: Could not clone 08:59:27 at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1052) 08:59:27 at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:982) 08:59:27 at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2200) 08:59:27 at hudson.remoting.UserRequest.perform(UserRequest.java:118) 08:59:27 at hudson.remoting.UserRequest.perform(UserRequest.java:48) 08:59:27 at hudson.remoting.Request$2.run(Request.java:326) 08:59:27 at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 08:59:27 at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 08:59:27 at java.util.concurrent.FutureTask.run(Unknown Source) 08:59:27 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 08:59:27 at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 08:59:27 at hudson.remoting.Engine$1$1.run(Engine.java:60) 08:59:27 at java.lang.Thread.run(Unknown Source)
It is still possible to manually delete the files.
FYI, we encountered such a seemingly similar issue in a Python script using Python internal delTree implementation, and it has been resolved by using Windows Shell command: "rmdir /s /q path/to/file" instead.
Using a matrix job is increasing the path length.
We would also need to use a different workspace path when under Windows.
- is duplicated by
-
JENKINS-14808 IOException: Unable to delete <FileName> on Windows Slaves
-
- Resolved
-
We've seen a general problem on Windows file systems with paths which exceed about 250 characters. The problems were visible in our MSBuild scripts and affected other programs as well. We finally decided that it was not worth fighting what appeared to be Microsoft file system limitations, so we forced ourselves to use shorter paths. The sample path in your output is longer than 250 characters, so you may be encountering the same problem we encountered.
You might find Jeff Attwood's comments on the topic interesting.
http://www.codinghorror.com/blog/2006/11/filesystem-paths-how-long-is-too-long.html