Curl jenkins面临问题:sync命令无法识别标签名称

Curl jenkins面临问题:sync命令无法识别标签名称,curl,jenkins,perforce,rpm,rpmbuild,Curl,Jenkins,Perforce,Rpm,Rpmbuild,我正在尝试使用curl命令按顺序运行Jenkins作业。面对一些奇怪的问题。在这种情况下,只有最后提到的作业正在执行,其他作业正在失败,例外情况如下 我的问题是 假设我有两个CLs来创建RPM 在Jenkins服务器中使用第一个CL和构建参数运行curl命令。它将在第一个CL中失败 在Jenkins服务器中使用第二个CL和build参数运行curl命令,它将正常运行并创建RPM 下面是我将得到的例外 Caught exception communicating with perforce. Er

我正在尝试使用curl命令按顺序运行Jenkins作业。面对一些奇怪的问题。在这种情况下,只有最后提到的作业正在执行,其他作业正在失败,例外情况如下

我的问题是

假设我有两个CLs来创建RPM 在Jenkins服务器中使用第一个CL和构建参数运行curl命令。它将在第一个CL中失败

在Jenkins服务器中使用第二个CL和build参数运行curl命令,它将正常运行并创建RPM

下面是我将得到的例外

Caught exception communicating with perforce. Errors encountered while force syncing: error: Invalid changelist/client/label/date '@cobrands.razor12.FIS.prod.20150609_build_01
com.tek42.perforce.PerforceException: Errors encountered while force syncing: error: Invalid changelist/client/label/date '@cobrands.razor12.FIS.prod.20150609_build_01

    at com.tek42.perforce.parse.Workspaces.syncTo(Workspaces.java:167)
    at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:1001)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1369)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:676)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:581)
    at hudson.model.Run.execute(Run.java:1575)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:241)
但使用相同的参数集,我手动运行Jenkins作业。会好起来的


有人能在这里帮忙吗?

有趣的是,只有最后一个sync命令在工作,而之前的一个没有

我认为最好的一步是联系您的Perforce server管理员,并获得对Perforce server日志的访问权,该日志可用于捕获您针对服务器运行的确切命令、顺序、参数和配置设置。(请让管理员确保设置了P4LOG,并且“服务器”日志设置至少为级别1。)

在目前可用信息有限的情况下,我想到的一些可能性是:

  • 可能有问题的标签(cobrands.razor12.FIS.prod.20150609_build_01)是在作业的中途创建的,因此它可以在Jenkins作业结束时使用,但不能在作业的早期使用
  • 作业中的不同步骤可能使用了不同的参数和配置设置(P4USER、P4CLIENT等),因此前面的命令无效,但后面的命令是正确的

  • 由于有问题的标签现在可用,但当'sync-f@cobrands.razor12.FIS.prod.20150609_build_01'命令失败时,标签显然不可用,因此可能是在发出该命令后创建的。您的服务器日志(以及您的spec depot,如果您的服务器管理员启用了它)将允许您确定标签是何时创建的,以及为什么您发出的第一个“sync-f”命令无法使用该标签。

    是“cobrands.razor12.FIS.prod.20150609_build_01”实际上是标签或工作区的名称吗?如果是,它是哪个(标签/工作区)?你能运行“p4客户机-e cobrands.razor12.FIS.prod.20150609_build_01”或“p4标签-e cobrands.razor12.FIS.prod.20150609_build_01”来告诉我吗?-bash-3.2$p4客户机-e'cobrands.razor12.FIS.prod.20150609_build_01'-bash-3.2$p4标签-e cobrands.razor12.FIS.prod.20150609_build_2015/06“由snarayan1创建。”-bash-3.2$@BryanPendleton我得到了$p4标签的输出-e cobrands.razor12.FIS.prod.20150609_build_01 Label cobrands.razor12.FIS.prod.20150609_build_01 2015/06/09“由snarayan1创建”。你能告诉我下一步该怎么做吗?谢谢@Bryan Pendleton,我会用我的perforce server日志查看,但仅供参考,这些标签是很久以前创建的,很久以来就存在于perforce server中。我们没有在作业进行中创建这些标签。检查了Performce Server日志,确认已下载。嘿,Bryan,我发现了问题。。这是我提供的标签名称末尾的一个错误空格字符。当我修剪输入参数并传递给命令时,它开始工作。非常感谢您抽出时间:)