stderr:致命:无法找到远程ref $ GERRIT_REFSPEC

时间:2012-12-27 04:35:34

标签: jenkins continuous-integration hudson jenkins-plugins hudson-plugins

在有人向我发枪之前......我已经查看了所有出现此错误的消息,但它们似乎表现出不同的问题,我无法获得任何实质性信息。以下是我在git轮询日志中遇到的错误...

  1. 我对错误#1没有任何线索,请提供输入

  2. 为此,我读了其他问题,当有一个gerrit触发器时,$ GERRIT_REFSPEC被动态填充,但我不明白为什么我会在git poll日志中看到这个。我该如何解决这个问题?


  3. 错误讯息:

    1. 错误:从原点/原点获取问题 - 可能无法使用。无论如何继续

    2. hudson.plugins.git.GitException:命令“/ usr / bin / git fetch -t ssh://company.com:29418 / platform / vendor / proprietary / mla.git $ GERRIT_REFSPEC”返回状态代码128: 标准输出: stderr:致命:找不到远程ref $ GERRIT_REFSPEC

4 个答案:

答案 0 :(得分:15)

  • 转到“作业的配置”页面并搜索以检查此版本是否已参数化框。
  • 然后将名称设置为 GERRIT_REFSPEC
  • 默认值 refs / heads / master

我花了一些时间来搜索如何添加Gerrit Trigger插件手册中提到的字符串参数。我使用Jenkins 1.567和Gerrit Trigger 2.11.1。

答案 1 :(得分:7)

截至2016年5月,此错误可能是由Jenkins 2.3或1.651.2中引入的修复SECURITY-170 引起的。

From wiki

  

在2016年5月的安全公告中,宣布了一个漏洞(SECURITY-170 / CVE-2016-3721),攻击者可能会利用某些Jenkins插件允许定义任意构建参数的事实 - 这些参数又被注入建设环境。

     

此问题的修复程序 - 最初包含在Jenkins版本1.651.2和Jenkins 2.3中 - 意味着在构建时默认情况下,只有在作业配置中明确定义的构建参数才可用。默认情况下,插件添加到构建中的任何其他任意参数都不可用。

     

由于有许多插件依赖于较旧的Jenkins版本中的行为,因此升级到1.651.2或2.3意味着某些构建行为可能会被破坏。

其中一个受影响的插件是Gerrit Trigger。您应该注意更新的问题是here

但是,请注意,如果您只从Gerrit构建一个分支,Rado在构建配置中手动定义GERRIT_REFSPEC参数的解决方案可以暂时解决此问题。

通过在ubuntu上将以下JAVA_ARGS添加到/ etc / default / jenkins可以获得解决方法

JAVA_ARGS="$JAVA_ARGS -Dhudson.model.ParametersAction.keepUndefinedParameters=true"

您还可以添加允许的变量

JAVA_ARGS="$JAVA_ARGS -Dhudson.model.ParametersAction.safeParameters=GERRIT_REFSPEC,GERRIT_BRANCH

答案 2 :(得分:3)

看起来您手动运行了Jenkins Gerrit Trigger构建?触发页面显示,

Using "Build Now"
[..]
Add a String parameter called GERRIT_REFSPEC with the default value refs/heads/master

https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger

答案 3 :(得分:-1)

解决此问题后,如果 Jenkins 仍未提取最新代码提交(未合并),则需要添加其他行为 - > 选择构建内容的策略 - > Gerrit Trigger

参考:Thanks to Fabian

enter image description here