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

Archiving artifacts fails if jenkins is not owner of builds dir

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      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).

        Attachments

          Issue Links

            Activity

            Hide
            jvz Matt Sicker added a comment -

            Fix has been merged to master and will be in the next weekly release.

            https://github.com/jenkinsci/jenkins/pull/3537

            Show
            jvz Matt Sicker added a comment - Fix has been merged to master and will be in the next weekly release. https://github.com/jenkinsci/jenkins/pull/3537

              People

              • Assignee:
                jvz Matt Sicker
                Reporter:
                zbynek Zbynek Konecny
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: