[ 
https://issues.jenkins-ci.org/browse/JENKINS-13202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=162453#comment-162453
 ] 

brenuart commented on JENKINS-13202:
------------------------------------

The same problem appears during installation of tools like JDK or Maven 
packaged as tar.gz on a remote Unix slave. The deployment process fails with 
the same exception.
I tend to agree with the above description: 
- the symlink is extracted from the tarball before its target;
- exception is thrown when deployment process tries to chmod the symlink;

I also agree with the proposed solution: there is no point in trying to chmod a 
symlink.

The root of the issue seems to be indeed located in the FilePath class and, as 
the number of linked issue suggest, tend to affect many plugins or different 
areas of Jenkins.

Are there any plans to fix this issue in the near future?
Is someone working on it?
Can we help somehow ?
                
> Artifact archiving from an ssh slave fails if symlinks are present
> ------------------------------------------------------------------
>
>                 Key: JENKINS-13202
>                 URL: https://issues.jenkins-ci.org/browse/JENKINS-13202
>             Project: Jenkins
>          Issue Type: Bug
>          Components: core
>    Affects Versions: current
>         Environment: Slave must be a "Unix via SSH" slave.  I suspect the 
> master must be Unix-based also.  I tested with both the master and slave on 
> Linux.
>            Reporter: David Reiss
>              Labels: artifact
>
> When archiving artifacts from a job executed on a "Unix via SSH" slave, if a 
> symlink is present and archived before its target, the archiving will fail.  
> It looks like the master is trying to chmod the local symlink (because it has 
> executable permissions stored in the tar used to do the remote copy), but 
> that fails because the target doesn't exist yet, and the exception aborts the 
> archiving.  I think the solution is to just not chmod symlinks, since they 
> don't have modes of their own.  This was a regression from 1.455 to 1.456.  I 
> suspect the fixes for JENKINS-9118 are the cause.
> To reproduce this problem, install the Jenkins master on a Linux machine and 
> add a "Unix via SSH" slave that is also a Linux machine.  Create a job with 
> the following build script:
> {noformat}
> rm -rf stuff
> mkdir stuff
> cd stuff
> touch zzfile
> ln -s zzfile aafile
> ln -s zzfile bbfile
> {noformat}
> Restrict this project to build on the slave.  Set up archiving for "stuff/*". 
>  Run the job.  The job will complete successfully, but archiving will abort 
> partway though with a stack trace in the console.
> {noformat}
> Archiving artifacts
> ERROR: Failed to archive artifacts: stuff/*
> hudson.util.IOException2: Failed to extract 
> /tmp/jenkins-slave-home/workspace/create_symlinks/stuff/*
>       at hudson.FilePath.readFromTar(FilePath.java:1817)
>       at hudson.FilePath.copyRecursiveTo(FilePath.java:1729)
>       at hudson.tasks.ArtifactArchiver.perform(ArtifactArchiver.java:116)
>       at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
>       at 
> hudson.model.AbstractBuild$AbstractRunner.perform(AbstractBuild.java:703)
>       at 
> hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:678)
>       at 
> hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:656)
>       at hudson.model.Build$RunnerImpl.post2(Build.java:162)
>       at 
> hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:625)
>       at hudson.model.Run.run(Run.java:1435)
>       at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
>       at hudson.model.ResourceController.execute(ResourceController.java:88)
>       at hudson.model.Executor.run(Executor.java:238)
> Caused by: java.io.IOException: Failed to chmod 
> /tmp/jenkins-home/jobs/create_symlinks/builds/2012-03-21_16-53-15/archive/stuff/aafile
>  : No such file or directory
>       at hudson.FilePath._chmod(FilePath.java:1248)
>       at hudson.FilePath.readFromTar(FilePath.java:1813)
>       ... 12 more
> {noformat}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to