• Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Minor Minor
    • core
    • None
    • OS: Centos 7 64-bit
      JRE: OpenJDK 1.8
      Container: Tomcat
      Jenkins version: 1.651.3 (and 2.53 according to code)
      Browser: Chrome

      Steps to reproduce:

      1. Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
      2. Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
      3. Start Jenkins
      4. Perform a build or a promotion with the Promotions plugin

      Observe:

       ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
       java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
       at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
       at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
       at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
       at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
       at java.nio.file.Files.createSymbolicLink(Files.java:1043)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at hudson.Util.createSymlinkJava7(Util.java:1237)
       at hudson.Util.createSymlink(Util.java:1153)
       at hudson.model.Run.createSymlink(Run.java:1840)
       at hudson.model.Run.updateSymlinks(Run.java:1821)
       at hudson.model.Run.execute(Run.java:1736)
       at hudson.model.Run.run(Run.java:1676)
       at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
       at hudson.model.ResourceController.execute(ResourceController.java:98)
       at hudson.model.Executor.run(Executor.java:410)
      

      The problem appears to be introduced in commit ed748d4b810ac1dd85e5da7857bc203f5773f329

      Jenkins tries to create the symlink using the Java 7+ approach. If it fails, it then checks hudson.Util.noSymLink before trying other methods to create the symlink.

      Recommended fix would be to test for NO_SYMLINK at the very beginning of createSymlink.

          [JENKINS-43407] hudson.Util.noSymLink option not respected

          Alex Stone created issue -
          Alex Stone made changes -
          Description Original: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
          java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
          at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
          at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
          at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
          at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
          at java.nio.file.Files.createSymbolicLink(Files.java:1043)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
          at java.lang.reflect.Method.invoke(Method.java:498)
          at hudson.Util.createSymlinkJava7(Util.java:1237)
          at hudson.Util.createSymlink(Util.java:1153)
          at hudson.model.Run.createSymlink(Run.java:1840)
          at hudson.model.Run.updateSymlinks(Run.java:1821)
          at hudson.model.Run.execute(Run.java:1736)
          at hudson.model.Run.run(Run.java:1676)
          at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
          at hudson.model.ResourceController.execute(ResourceController.java:98)
          at hudson.model.Executor.run(Executor.java:410)
          New: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:

          {code}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}
          Alex Stone made changes -
          Description Original: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:

          {code}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}
          New: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
          # Set the
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          Alex Stone made changes -
          Description Original: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
          # Set the
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          New: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          Alex Stone made changes -
          Description Original: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          New: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          The problem appears to be introduced in commit [ed748d4b810ac1dd85e5da7857bc203f5773f329| https://github.com/jenkinsci/jenkins/commit/ed748d4b810ac1dd85e5da7857bc203f5773f329?diff=unified]

          Jenkins try to create the symlink. If it fails, it then checks

          Alex Stone made changes -
          Description Original: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          The problem appears to be introduced in commit [ed748d4b810ac1dd85e5da7857bc203f5773f329| https://github.com/jenkinsci/jenkins/commit/ed748d4b810ac1dd85e5da7857bc203f5773f329?diff=unified]

          Jenkins try to create the symlink. If it fails, it then checks

          New: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          The problem appears to be introduced in commit [ed748d4b810ac1dd85e5da7857bc203f5773f329| https://github.com/jenkinsci/jenkins/commit/ed748d4b810ac1dd85e5da7857bc203f5773f329?diff=unified]

          Jenkins try to create the symlink using the Java 7+ approach. If it fails, it then checks hudson.Util.noSymLink before trying other methods to create the symlink.

          Alex Stone made changes -
          Description Original: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          The problem appears to be introduced in commit [ed748d4b810ac1dd85e5da7857bc203f5773f329| https://github.com/jenkinsci/jenkins/commit/ed748d4b810ac1dd85e5da7857bc203f5773f329?diff=unified]

          Jenkins try to create the symlink using the Java 7+ approach. If it fails, it then checks hudson.Util.noSymLink before trying other methods to create the symlink.

          New: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          The problem appears to be introduced in commit [ed748d4b810ac1dd85e5da7857bc203f5773f329| https://github.com/jenkinsci/jenkins/commit/ed748d4b810ac1dd85e5da7857bc203f5773f329?diff=unified]

          Jenkins try to create the symlink using the Java 7+ approach. If it fails, it then checks hudson.Util.noSymLink before trying other methods to create the symlink.

          Recommended fix would be to test for NO_SYMLINK at the very beginning of createSymlink.
          Alex Stone made changes -
          Summary Original: hudson.Util.noSymLink option not respected on JRE 1.7+ New: hudson.Util.noSymLink option not respected
          Alex Stone made changes -
          Description Original: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          The problem appears to be introduced in commit [ed748d4b810ac1dd85e5da7857bc203f5773f329| https://github.com/jenkinsci/jenkins/commit/ed748d4b810ac1dd85e5da7857bc203f5773f329?diff=unified]

          Jenkins try to create the symlink using the Java 7+ approach. If it fails, it then checks hudson.Util.noSymLink before trying other methods to create the symlink.

          Recommended fix would be to test for NO_SYMLINK at the very beginning of createSymlink.
          New: Steps to reproduce:
           # Copy Jenkins home directory to a filesystem that does not support symlinks (AWS Storage Gateway in my case)
           # Add -Dhudson.Util.noSymLink=true to java options in tomcat configuration
           # Start Jenkins
           # Perform a build or a promotion with the Promotions plugin

          Observe:
          {code:java}
           ln builds/lastSuccessfulBuild /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful failed
           java.nio.file.FileSystemException: /var/lib/jenkins/jobs/McRel Identity App/promotions/dev/lastSuccessful: Unknown error 524
           at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
           at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
           at sun.nio.fs.UnixFileSystemProvider.createSymbolicLink(UnixFileSystemProvider.java:457)
           at java.nio.file.Files.createSymbolicLink(Files.java:1043)
           at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
           at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
           at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
           at java.lang.reflect.Method.invoke(Method.java:498)
           at hudson.Util.createSymlinkJava7(Util.java:1237)
           at hudson.Util.createSymlink(Util.java:1153)
           at hudson.model.Run.createSymlink(Run.java:1840)
           at hudson.model.Run.updateSymlinks(Run.java:1821)
           at hudson.model.Run.execute(Run.java:1736)
           at hudson.model.Run.run(Run.java:1676)
           at hudson.plugins.promoted_builds.Promotion.run(Promotion.java:286)
           at hudson.model.ResourceController.execute(ResourceController.java:98)
           at hudson.model.Executor.run(Executor.java:410)
          {code}

          The problem appears to be introduced in commit [ed748d4b810ac1dd85e5da7857bc203f5773f329| https://github.com/jenkinsci/jenkins/commit/ed748d4b810ac1dd85e5da7857bc203f5773f329?diff=unified]

          Jenkins tries to create the symlink using the Java 7+ approach. If it fails, it then checks hudson.Util.noSymLink before trying other methods to create the symlink.

          Recommended fix would be to test for NO_SYMLINK at the very beginning of createSymlink.
          Andor Herendi made changes -
          Link New: This issue is related to JENKINS-43540 [ JENKINS-43540 ]
          Jesse Glick made changes -
          Link New: This issue relates to JENKINS-37862 [ JENKINS-37862 ]
          Jesse Glick made changes -
          Resolution New: Won't Fix [ 2 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]

            Unassigned Unassigned
            alex_stone_filament Alex Stone
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: