Используя https://wiki.jenkins.io/display/JENKINS/Git+Parameter+Plugin, когда пользователь в Jenkins переходит на страницу компоновки «сборка с параметрами», список ветвей заменяется на
Команда "git ls-remote -h git@bitbucket.org: myorg / my_repo.git" вернула код состояния 128:
стандартный вывод:
stderr: /tmp/ssh4348750905358163987.sh: строка 6: ssh: команда не найдена
Неустранимый: Не удалось прочитать из удаленного хранилища.
Когда я запускаю ssh на главном сервере Jenkins (то есть, я догадываюсь, откуда запускается команда git ls-remote), я могу просто запустить sudo -u jenkins -- git ls-remote -h git@bitbucket.org:<myorg>/<my_repo>.git
и получить список ветвей. Так почему же Дженкинс возмущается, когда git пытается вызвать ssh?
Когда я просматриваю логи, я вижу следующее исключение стека:
в
org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn (CliGitAPIImpl.java:2002)
в
org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials (CliGitAPIImpl.java:1721)
в
org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials (CliGitAPIImpl.java:1625)
в
org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials (CliGitAPIImpl.java:1616)
в
org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getRemoteReferences (CliGitAPIImpl.java:2837)
в
net.uaznia.lukanus.hudson.plugins.gitparameter.GitParameterDefinition.getBranch (GitParameterDefinition.java:381)
в
net.uaznia.lukanus.hudson.plugins.gitparameter.GitParameterDefinition.generateContents (GitParameterDefinition.java:310)
в
net.uaznia.lukanus.hudson.plugins.gitparameter.GitParameterDefinition $ DescriptorImpl.doFillValueItems (GitParameterDefinition.java:622)
в
java.lang.invoke.MethodHandle.invokeWithArguments (MethodHandle.java:627)
в
org.kohsuke.stapler.Function $ MethodFunction.invoke (Function.java:343)
в org.kohsuke.stapler.Function.bindAndInvoke (Function.java:184) в
org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse (Function.java:117)
в org.kohsuke.stapler.MetaClass $ 1.doDispatch (MetaClass.java:129) в
org.kohsuke.stapler.NameBasedDispatcher.dispatch (NameBasedDispatcher.java:58)
в org.kohsuke.stapler.Stapler.tryInvoke (Stapler.java:715) в
org.kohsuke.stapler.Stapler.invoke (Stapler.java:845) в
org.kohsuke.stapler.MetaClass $ 5.doDispatch (MetaClass.java:248) в
org.kohsuke.stapler.NameBasedDispatcher.dispatch (NameBasedDispatcher.java:58)
в org.kohsuke.stapler.Stapler.tryInvoke (Stapler.java:715) в
org.kohsuke.stapler.Stapler.invoke (Stapler.java:845) в
org.kohsuke.stapler.MetaClass $ 5.doDispatch (MetaClass.java:248) в
org.kohsuke.stapler.NameBasedDispatcher.dispatch (NameBasedDispatcher.java:58)
в org.kohsuke.stapler.Stapler.tryInvoke (Stapler.java:715) в
org.kohsuke.stapler.Stapler.invoke (Stapler.java:845) в
org.kohsuke.stapler.Stapler.invoke (Stapler.java:649) в
org.kohsuke.stapler.Stapler.service (Stapler.java:238) в
javax.servlet.http.HttpServlet.service (HttpServlet.java:790) в
org.eclipse.jetty.servlet.ServletHolder.handle (ServletHolder.java:860)
в
org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1650)
в
hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:154)
в
org.jenkinsci.plugins.ssegateway.Endpoint $ SSEListenChannelFilter.doFilter (Endpoint.java:225)
в
hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151)
в
io.jenkins.blueocean.ResourceCacheControl.doFilter (ResourceCacheControl.java:134)
в
hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151)
в
io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter (JwtAuthenticationFilter.java:61)
в
hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151)
в
jenkins.metrics.impl.MetricsFilter.doFilter (MetricsFilter.java:125)
в
hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151)
вnet.bull.javamelody.MonitoringFilter.doFilter (MonitoringFilter.java:237)
в
net.bull.javamelody.MonitoringFilter.doFilter (MonitoringFilter.java:214)
в
net.bull.javamelody.PluginMonitoringFilter.doFilter (PluginMonitoringFilter.java:88)
в
org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter (HudsonMonitoringFilter.java:114)
в
hudson.util.PluginServletFilter $ 1.doFilter (PluginServletFilter.java:151)
в
hudson.util.PluginServletFilter.doFilter (PluginServletFilter.java:157)
в
org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637)
в hudson.security.csrf.CrumbFilter.doFilter (CrumbFilter.java:99) в
org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637)
в
hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:84)
в
hudson.security.UnwrapSecurityExceptionFilter.doFilter (UnwrapSecurityExceptionFilter.java:51)
в
hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87)
в
jenkins.security.ExceptionTranslationFilter.doFilter (ExceptionTranslationFilter.java:117)
в
hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87)
в
org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter (AnonymousProcessingFilter.java:125)
в
hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87)
в
org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter (RememberMeProcessingFilter.java:142)
в
hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87)
в
org.acegisecurity.ui.AbstractProcessingFilter.doFilter (AbstractProcessingFilter.java:271)
в
hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87)
в
jenkins.security.BasicHeaderProcessor.doFilter (BasicHeaderProcessor.java:93)
в
hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87)
в
org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter (HttpSessionContextIntegrationFilter.java:249)
в
hudson.security.HttpSessionContextIntegrationFilter2.doFilter (HttpSessionContextIntegrationFilter2.java:67)
в
hudson.security.ChainedServletFilter $ 1.doFilter (ChainedServletFilter.java:87)
в
hudson.security.ChainedServletFilter.doFilter (ChainedServletFilter.java:90)
в hudson.security.HudsonFilter.doFilter (HudsonFilter.java:171) в
org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637)
в
org.kohsuke.stapler.compression.CompressionFilter.doFilter (CompressionFilter.java:49)
в
org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637)
в
hudson.util.CharacterEncodingFilter.doFilter (CharacterEncodingFilter.java:82)
в
org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637)
в
org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter (DiagnosticThreadNameFilter.java:30)
в
org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter (ServletHandler.java:1637)
в
org.eclipse.jetty.servlet.ServletHandler.doHandle (ServletHandler.java:533)
в
org.eclipse.jetty.server.handler.ScopedHandler.handle (ScopedHandler.java:143)
в
org.eclipse.jetty.security.SecurityHandler.handle (SecurityHandler.java:524)
в
org.eclipse.jetty.server.handler.HandlerWrapper.handle (HandlerWrapper.java:132)
в
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle (ScopedHandler.java:190)
в
org.eclipse.jetty.server.session.SessionHandler.doHandle (SessionHandler.java:1595)
в
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle (ScopedHandler.java:188)
в
org.eclipse.jetty.server.handler.ContextHandler.doHandle (ContextHandler.java:1253)
в
org.eclipse.jetty.server.handler.ScopedHandler.nextScope (ScopedHandler.java:168)
вorg.eclipse.jetty.servlet.ServletHandler.doScope (ServletHandler.java:473)
в
org.eclipse.jetty.server.session.SessionHandler.doScope (SessionHandler.java:1564)
в
org.eclipse.jetty.server.handler.ScopedHandler.nextScope (ScopedHandler.java:166)
в
org.eclipse.jetty.server.handler.ContextHandler.doScope (ContextHandler.java:1155)
в
org.eclipse.jetty.server.handler.ScopedHandler.handle (ScopedHandler.java:141)
в
org.eclipse.jetty.server.handler.HandlerWrapper.handle (HandlerWrapper.java:132)
в org.eclipse.jetty.server.Server.handle (Server.java:530) в
org.eclipse.jetty.server.HttpChannel.handle (HttpChannel.java:347) в
org.eclipse.jetty.server.HttpConnection.onFillable (HttpConnection.java:256)
в
org.eclipse.jetty.io.AbstractConnection $ ReadCallback.succeeded (AbstractConnection.java:279)
в org.eclipse.jetty.io.FillInterest.fillable (FillInterest.java:102)
в
org.eclipse.jetty.io.ChannelEndPoint $ 2.run (ChannelEndPoint.java:124)
в
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce (EatWhatYouKill.java:247)
в
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce (EatWhatYouKill.java:140)
в
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run (EatWhatYouKill.java:131)
в
org.eclipse.jetty.util.thread.ReservedThreadExecutor $ ReservedThread.run (ReservedThreadExecutor.java:382)
в
winstone.BoundedExecutorService $ 1.run (BoundedExecutorService.java:77)
в
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)
at java.lang.Thread.run (Thread.java:745)
Редактировать: Если я удаляю параметр ветви и заменяю его на простой параметр строки для ветви, он успешно выбирается, поэтому это похоже на ошибку с плагином параметра git - возможно, при использовании cygwin / ssh с ведомыми устройствами Jenkins в Windows.