ls-remote вызывает таймаут и возвращает код ошибки -1 при опросе git-сервера через jenkins
Я пытаюсь настроить сервер 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
И сервер, и ведомый работают в Windows, с приложением git для Windows. Ошибка происходит при каждом задании: 3 работают в разных ветвях одного и того же хранилища, а другое - во втором хранилище, расположенном на том же сервере Bonobo, доступ к которому осуществляется через HTML.
Кроме того, если я пытаюсь выполнить команды с моего собственного компьютера (не ведомого) или сервера, он выполняется правильно, даже если я задаю имена пользователей, неизвестные моему компьютеру и хранилищу.
Еще одна странная вещь, которую я заметил, - это то, что учетные данные могут быть причиной этой проблемы, так как изменение конфигурации задания на неправильного пользователя вызывает ту же ошибку. Я не могу получить доступ к ведомому устройству, и запуск команд, выполненных выше, через консоль сценария Дженкинса, не возвращает строки (я полагаю, еще один таймаут?). Я также пытался посмотреть на 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
Наконец, я не знаю, имеет ли это отношение к этой проблеме, но когда я пытаюсь notifyCommit на сервере Jenkins с помощью curl со своего собственного компьютера, он находит задания, используя указанный репозиторий, но говорит No Git consumers using SCM API plugin for : <myrepo.git>
, даже если опрос все еще запущен этим уведомлением.
Есть ли ссылка на SSH, висящую с плагином git? Если я не ошибаюсь, доступ с URL не должен вызывать эту проблему, верно? Кроме того, я предполагаю, что есть место, где хранятся учетные данные, о которых я не знаю?
Спасибо за помощь ребята.