GIT 项目的 Jenkins 签出失败,权限被致命拒绝:无法分叉
Jenkins checkout of GIT project fails with Permission denied fatal: unable to fork
我有一个 Freestyle Jenkins 项目,它使用 bitbucket 作为 SCM,使用 ssh 作为协议和私钥(不是 user/password)。
当我在 master 上构建项目时,它失败并显示以下堆栈跟踪,而它在 agent 上运行良好。
通知错误提及:
stderr: fatal: cannot exec '/var/lib/jenkins/workspace/foo_test@tmp/ssh1377177620135545595.sh': Permission denied
fatal: unable to fork
我检查了以下内容:
- 运行 作为 jenkins 用户从命令行显示没有问题。
- 文件夹 /var/lib/jenkins/workspace/foo_test@tmp 可由 Jenkins 写入
- 我使用的是 Git Client 2.7.4
的最新版本
可能是什么问题?
堆栈跟踪:
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.access0(CliGitAPIImpl.java:72)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.execute(CliGitAPIImpl.java:420)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.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
检查 master 上的工作区目录是否未使用 'noexec' 选项挂载。
- 查看 /etc/fstsab 以找到这些设置
- 删除 noexec
- 重启机器
有关更多信息,请参阅 Mark Waiter 的精彩回答
我有一个 Freestyle Jenkins 项目,它使用 bitbucket 作为 SCM,使用 ssh 作为协议和私钥(不是 user/password)。
当我在 master 上构建项目时,它失败并显示以下堆栈跟踪,而它在 agent 上运行良好。
通知错误提及:
stderr: fatal: cannot exec '/var/lib/jenkins/workspace/foo_test@tmp/ssh1377177620135545595.sh': Permission denied fatal: unable to fork
我检查了以下内容:
- 运行 作为 jenkins 用户从命令行显示没有问题。
- 文件夹 /var/lib/jenkins/workspace/foo_test@tmp 可由 Jenkins 写入
- 我使用的是 Git Client 2.7.4 的最新版本
可能是什么问题?
堆栈跟踪:
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.access0(CliGitAPIImpl.java:72)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.execute(CliGitAPIImpl.java:420)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.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
检查 master 上的工作区目录是否未使用 'noexec' 选项挂载。
- 查看 /etc/fstsab 以找到这些设置
- 删除 noexec
- 重启机器
有关更多信息,请参阅 Mark Waiter 的精彩回答