我正在尝试配置 Jenkins 服务器(1.656 版)以触发构建提交通知,但在 Jenkins 收到通知后安排或触发的每个轮询都会超时:
Started on 12.07.2016 13:49:39
Using strategy: Default
[poll] Last Built Revision: Revision 5d9aca316442628a4a4232f0d91db4aa364097c8 (refs/remotes/origin/<mybranch>)
using .gitcredentials to set credentials
> git.exe --version # timeout=10
> git.exe init C:\windows\TEMP\hudson5601032587070717608tmp # timeout=10
> git.exe config --local credential.username <myuser> # timeout=10
> git.exe config --local credential.helper store --file=\"C:\windows\TEMP\git5393454342982372389.credentials\" # timeout=10
> git.exe -c core.askpass=true ls-remote -h http://<myrepo.git> # timeout=10
ERROR: Timeout after 10 minutes
> git.exe config --local --remove-section credential # timeout=10
FATAL: hudson.plugins.git.GitException: Command "git.exe -c ore.askpass=true ls-remote -h http://<myrepo.git>" returned status code -1:
stdout:
stderr:
hudson.util.IOException2: hudson.plugins.git.GitException: Command "git.exe -c core.askpass=true ls-remote -h http://<myrepo.git>" returned status code -1:
stdout:
stderr:
at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:573)
at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:381)
at hudson.scm.SCM.poll(SCM.java:398)
at hudson.model.AbstractProject._poll(AbstractProject.java:1446)
at hudson.model.AbstractProject.poll(AbstractProject.java:1349)
at hudson.triggers.SCMTrigger$Runner.runPolling(SCMTrigger.java:526)
at hudson.triggers.SCMTrigger$Runner.run(SCMTrigger.java:555)
at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:119)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: hudson.plugins.git.GitException: Command "git.exe -c core.askpass=true ls-remote -h http://<myrepo.git>" returned status code -1:
stdout:
stderr:
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1719)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1463)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1349)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1340)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getHeadRev(CliGitAPIImpl.java:2441)
at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:627)
at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:571)
... 12 more
Done. Took 10 Minuten
No changes
server 和 slave 都在 Windows 上运行,使用 git for windows 应用程序。每个作业都会发生错误:3 个在同一个存储库的不同分支上工作,另一个在另一个存储库上工作,放置在同一个 Bonobo 服务器上,通过 HTML 访问。
此外,如果我尝试从我自己的 PC(而不是从属)或服务器执行命令,即使我设置了我的计算机和存储库未知的用户名,它也会正确执行。
我注意到的另一件奇怪的事情是,凭据似乎可能是导致此问题的原因,因为将作业配置更改为错误的用户会导致相同的错误。我无法访问从站本身,并且通过 Jenkins 的脚本控制台启动上面执行的命令不会返回任何行(我猜是另一个超时?)。我还尝试查看git config --list
它,其中包含:
core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
http.sslcainfo=/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
rebase.autosquash=true
credential.helper=manager
最后,我不知道它是否与这个问题有关,但是当我在自己的计算机上使用 curl 尝试在 Jenkins 服务器上执行 notifyCommit 时,它会使用给定的存储库找到作业,但会说No Git consumers using SCM API plugin for : <myrepo.git>
,即使轮询仍在启动通过此通知。
是否有与 git 插件一起挂起的 SSH 的链接?如果我没记错的话,使用 url 访问应该不会导致这个问题,对吧?另外,我想有一个地方保存了我不知道的凭据?
谢谢你们的帮助。