我有一个Freestyle Jenkins项目,该项目使用bitbucket作为SCM,并使用ssh作为协议和私钥(而不是用户/密码)。
当我在master上构建项目时,它在以下stacktrace下失败,而在agent上运行良好。
注意错误提到:
stderr:致命:无法执行’/var/lib/jenkins/workspace/foo_test@tmp/ssh1377177620135545595.sh’:权限被拒绝致命:无法分叉
我检查了以下内容:
可能是什么问题?
堆栈跟踪:
Started by user unknown or anonymous Building on master in workspace /var/lib/jenkins/workspace/foo_test [WS-CLEANUP] Deleting project workspace... [WS-CLEANUP] Deferred wipeout is used... Cloning the remote Git repository Cloning repository ssh://git@bitbucket.foo.com:7999/~xxx/foo_poc.git > git init /var/lib/jenkins/workspace/foo_test # timeout=10 Fetching upstream changes from ssh://git@bitbucket.foo.com:7999/~xxx/foo_poc.git > git --version # timeout=10 using GIT_SSH to set credentials > git fetch --tags --progress ssh://git@bitbucket.foo.com:7999/~xxx/foo_poc.git +refs/heads/*:refs/remotes/origin/* ERROR: Error cloning remote repo 'origin' hudson.plugins.git.GitException: Command "git fetch --tags --progress ssh://git@bitbucket.foo.com:7999/~xxx/foo_poc.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: stdout: stderr: fatal: cannot exec '/var/lib/jenkins/workspace/foo_test@tmp/ssh1377177620135545595.sh': Permission denied fatal: unable to fork at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2016) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1735) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:72) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:420) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:629) at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1146) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1186) at hudson.scm.SCM.checkout(SCM.java:504) at hudson.model.AbstractProject.checkout(AbstractProject.java:1208) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:574) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499) at hudson.model.Run.execute(Run.java:1819) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:97) at hudson.model.Executor.run(Executor.java:429) ERROR: Error cloning remote repo 'origin' Finished: FAILURE
检查主服务器上的工作区目录是否未使用’noexec’选项安装。
有关更多信息,请参见Mark Waiter的出色解答