-
Bug
-
Resolution: Unresolved
-
Minor
In our setup the builds dir is a symlink to a network filesystem, hence Jenkins user has write permissions but is not owner of that directory. When trying to archive artifacts following error occurs:
java.nio.file.FileSystemException: /var/lib/jenkins/jobs/GeoGebra-autotest/builds/17371/archive/desktop/build/install/desktop/lib/impl.jar: Operation not permitted
13:29:38 at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
13:29:38 at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
13:29:38 at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
13:29:38 at sun.nio.fs.UnixCopyFile.copyFile(UnixCopyFile.java:283)
13:29:38 at sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:581)
13:29:38 at sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:253)
13:29:38 at java.nio.file.Files.copy(Files.java:1274)
13:29:38 at hudson.FilePath$31$1.visit(FilePath.java:2301)
13:29:38 at hudson.util.DirScanner.scanSingle(DirScanner.java:44)
13:29:38 at hudson.FilePath$ExplicitlySpecifiedDirScanner.scan(FilePath.java:2996)
13:29:38 at hudson.FilePath$31.invoke(FilePath.java:2295)
13:29:38 at hudson.FilePath$31.invoke(FilePath.java:2288)
13:29:38 at hudson.FilePath.act(FilePath.java:1047)
13:29:38 at hudson.FilePath.act(FilePath.java:1025)
This is a regression between 2.107.3 and 2.121. Problem is that FilePath.copyRecursiveTo (https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/FilePath.java ) is now using
Files.copy(fileToPath(f), fileToPath(writing(target)), StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING);
and the COPY_ATTRIBUTES flag does triggers the "operation not permitted" error (timestamp can't be changed in directory not owned by jenkins).
- is related to
-
JENKINS-13128 Artifacts Permissions Stripped
- Resolved
- links to