java.io.IOException: Failed to install <tool url> to <file path>

Jenkins JIRA | Ben Walding | 3 months ago
  1. 0

    It appears that during a tool install, the master is attempting a connection out to the remote url - before attempting it on the agent. h4. Stack Trace {noformat} java.io.IOException: Failed to install <tool url> to <file path> at hudson.FilePath.installIfNecessaryFrom(FilePath.java:832) at hudson.tools.DownloadFromUrlInstaller.performInstallation(DownloadFromUrlInstaller.java:76) at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:68) at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:108) at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:206) {noformat} h4. Forcing a problem One way to force a failure on the master would be to set a "fail always" hostname verifier on the master (via script console) {code} HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() { public boolean verify(String hostname, SSLSession session) { return false; } } ); {code} h4. Discussion The failure was here [1]. But this is happening on the master. We do not really care how the master is configured; we want to do the download from the agent, for builds run in a remote workspace (the recommended configuration). Which it does try to do, starting at line 804, falling back to a slower master-based download only if that fails (for example because the agent has no Internet access). The problem is that we first try to get a URLConnection on the master merely to check the timestamp and other response headers plus status (so we know whether a download is even needed); normally con is then discarded without downloading content. So the fact that a failure occurred in the dummy initial connection (which would ideally be a HEAD not GET) is causing the whole tool installation to fail is a serious problem. For a remote workspace, we should be doing even the metadata checks inside the Unpack callable. It should not really matter whether the master’s settings were broken or not, at least not for purposes of tool downloads. One connection to the tool installer URL would be made, from the agent JVM, which (I hope) would have default Java settings that would work fine. [1] https://github.com/jenkinsci/jenkins/blob/jenkins-1.651.2/core/src/main/java/hudson/FilePath.java#L767

    Jenkins JIRA | 3 months ago | Ben Walding
    java.io.IOException: Failed to install <tool url> to <file path>
  2. 0

    [JIRA] (JENKINS-37745) Tool installer prematurely connecting to download URLs on master

    Google Groups | 3 months ago | bwal...@cloudbees.com (JIRA)
    java.io.IOException: Failed to install &lt;tool url&gt; to &lt;file path&gt;
  3. 0

    Hadoop lucene-users - SimpleKMeansCLustering - "Failed to set permissions of path to 0700"

    nabble.com | 1 year ago
    java.io.IOException: Failed to set permissions of path: file:/tmp/hadoop-Rob/mapred/staging/Rob1823346078/.staging to 0700
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    I am attempting to archive a directory containing symlinks (from a 64 bit linux slave to a 32 bit linux master), but the archive is failing when it attempts to do a chmod on the symlink. The reason appears to be that it has copied the symlink before copying the file it references. In the following output libMagick\+\+.so is a symlink to libMagick\+\+.so.5.0.0. When I look on the master after the job finishes libMagick\+\+.so has been copied, but libMagick\+\+.so.5.0.0 has not. Both exist on the slave. I think worked before I upgraded Jenkins to version 1.460. +The log:+ ERROR: Failed to archive artifacts: install/\*\*/* hudson.util.IOException2: hudson.util.IOException2: Failed to extract /localhome/jenkins/Jenkins_workspace/workspace/ImageMagick/AllOSes/linux64/install/\*\*/* 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:705) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:680) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:658) at hudson.model.Build$RunnerImpl.post2(Build.java:162) at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:627) at hudson.model.Run.run(Run.java:1446) at hudson.matrix.MatrixRun.run(MatrixRun.java:146) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:238) Caused by: java.io.IOException: Failed to chmod /var/lib/jenkins/jobs/ImageMagick/configurations/axis-AllOSes/linux64/builds/2012-04-30_16-17-39/archive/install/lib/libMagick++.so : No such file or directory at hudson.FilePath._chmod(FilePath.java:1248) at hudson.FilePath.readFromTar(FilePath.java:1813) ... 12 more at hudson.FilePath.copyRecursiveTo(FilePath.java:1736) 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:705) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:680) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:658) at hudson.model.Build$RunnerImpl.post2(Build.java:162) at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:627) at hudson.model.Run.run(Run.java:1446) at hudson.matrix.MatrixRun.run(MatrixRun.java:146) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:238) Caused by: java.util.concurrent.ExecutionException: java.io.IOException: Pipe is already closed at hudson.remoting.Channel$3.adapt(Channel.java:679) at hudson.remoting.Channel$3.adapt(Channel.java:674) at hudson.remoting.FutureAdapter.get(FutureAdapter.java:59) at hudson.FilePath.copyRecursiveTo(FilePath.java:1732) ... 11 more Caused by: java.io.IOException: Pipe is already closed at hudson.remoting.PipeWindow.checkDeath(PipeWindow.java:83) at hudson.remoting.PipeWindow$Real.get(PipeWindow.java:171) at hudson.remoting.ProxyOutputStream._write(ProxyOutputStream.java:118) at hudson.remoting.ProxyOutputStream.write(ProxyOutputStream.java:103) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109) at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:161) at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:118) at java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:72) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105) at org.apache.tools.tar.TarBuffer.writeBlock(TarBuffer.java:410) at org.apache.tools.tar.TarBuffer.writeRecord(TarBuffer.java:351) at hudson.org.apache.tools.tar.TarOutputStream.writeEOFRecord(TarOutputStream.java:356) at hudson.org.apache.tools.tar.TarOutputStream.finish(TarOutputStream.java:137) at hudson.org.apache.tools.tar.TarOutputStream.close(TarOutputStream.java:149) at hudson.util.io.TarArchiver.close(TarArchiver.java:119) at hudson.FilePath.writeToTar(FilePath.java:1783) at hudson.FilePath.access$1000(FilePath.java:166) at hudson.FilePath$36.invoke(FilePath.java:1722) at hudson.FilePath$36.invoke(FilePath.java:1719) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2154) at hudson.remoting.UserRequest.perform(UserRequest.java:118) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:287) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.IOException: Pipe is already closed at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:147) at hudson.remoting.FastPipedOutputStream.write(FastPipedOutputStream.java:131) at hudson.remoting.ProxyOutputStream$Chunk$1.run(ProxyOutputStream.java:211) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: hudson.remoting.FastPipedInputStream$ClosedBy: The pipe was closed at... at hudson.remoting.FastPipedInputStream.close(FastPipedInputStream.java:112) at java.io.FilterInputStream.close(FilterInputStream.java:181) at java.util.zip.InflaterInputStream.close(InflaterInputStream.java:227) at java.util.zip.GZIPInputStream.close(GZIPInputStream.java:135) at org.apache.tools.tar.TarBuffer.close(TarBuffer.java:456) at hudson.org.apache.tools.tar.TarInputStream.close(TarInputStream.java:110) at hudson.FilePath.readFromTar(FilePath.java:1824) 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:705) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:680) at hudson.model.AbstractBuild$AbstractRunner.performAllBuildSteps(AbstractBuild.java:658) at hudson.model.Build$RunnerImpl.post2(Build.java:162) at hudson.model.AbstractBuild$AbstractRunner.post(AbstractBuild.java:627) at hudson.model.Run.run(Run.java:1446) at hudson.matrix.MatrixRun.run(MatrixRun.java:146) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:238) Notifying upstream projects of job completion

    Jenkins JIRA | 5 years ago | Anthony Berent
    hudson.util.IOException2: hudson.util.IOException2: Failed to extract /localhome/jenkins/Jenkins_workspace/workspace/ImageMagick/AllOSes/linux64/install/\*\*/*
  6. 0

    jwstutorial13 ant install build fail

    Oracle Community | 1 decade ago | 843834
    java.io.IOException: Server returned HTTP response code: 401 for URL http://localhost:8080/manager/install?path=%2Fgs&war=file%3AC%3A%2Fjwstutorial13%2F jwstutorial13%2Fexamples%2Fgs%2Fbuild

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. java.io.IOException

      Failed to install <tool url> to <file path>

      at hudson.FilePath.installIfNecessaryFrom()
    2. Hudson
      ToolInstallation.translateFor
      1. hudson.FilePath.installIfNecessaryFrom(FilePath.java:832)
      2. hudson.tools.DownloadFromUrlInstaller.performInstallation(DownloadFromUrlInstaller.java:76)
      3. hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:68)
      4. hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:108)
      5. hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:206)
      5 frames