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

CommandInstaller assumes write access to installation directory

XMLWordPrintable

      The Mercurial incorrectly assumes write-access to the Mercurial installation directory, triggering the following exception:

      hudson.util.IOException2: Failed to create a temp file on /usr
      	at hudson.FilePath.createTextTempFile(FilePath.java:1163)
      	at hudson.FilePath.createTextTempFile(FilePath.java:1114)
      	at hudson.tools.CommandInstaller.performInstallation(CommandInstaller.java:82)
      	at hudson.tools.InstallerTranslator.getToolHome(InstallerTranslator.java:61)
      	at hudson.tools.ToolLocationNodeProperty.getToolHome(ToolLocationNodeProperty.java:107)
      	at hudson.tools.ToolInstallation.translateFor(ToolInstallation.java:203)
      	at hudson.plugins.mercurial.MercurialInstallation.forNode(MercurialInstallation.java:103)
      	at hudson.plugins.mercurial.MercurialSCM.findHgExe(MercurialSCM.java:201)
      	at hudson.plugins.mercurial.HgExe.<init>(HgExe.java:80)
      	at hudson.plugins.mercurial.MercurialSCM.clone(MercurialSCM.java:554)
      	at hudson.plugins.mercurial.MercurialSCM.checkout(MercurialSCM.java:389)
      	at hudson.model.AbstractProject.checkout(AbstractProject.java:1324)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
      	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
      	at hudson.model.Run.execute(Run.java:1518)
      	at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:477)
      	at hudson.model.ResourceController.execute(ResourceController.java:88)
      	at hudson.model.Executor.run(Executor.java:236)
      Caused by: hudson.util.IOException2: remote file operation failed: /usr at hudson.remoting.Channel@26528fa4:Ubuntu 12.04
      	at hudson.FilePath.act(FilePath.java:848)
      	at hudson.FilePath.act(FilePath.java:825)
      	at hudson.FilePath.createTextTempFile(FilePath.java:1141)
      	... 18 more
      

      My configuration is as follows:

      Installation directory = /usr
      Executable = INSTALLATION/bin/hg
      Installation Automatically using command: "sudo apt-get install mercurial"

      Jenkin's user does not have general access to /usr, nor to "sudo". It only has executable permissions in /usr/bin and "sudoers" permission to "apt-get".

      Expected behavior: write temporary files into the path specified by the "java.io.tmpdir" system property.

            Unassigned Unassigned
            cowwoc cowwoc
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: