第一次尝试后触发远程参数化作业失败并超出重试限制 - 提到 CSRF

Trigger Remote Parameterised Job failed with Exceed Retry Limits after 1st try - mentions CSRF

我有一个管道可以触发远程作业,然后在完成后发布到网络挂钩 - PipelineA

我还有 2 个触发 PipelineA、PipelineB 和 PipelineC 的管道。

PipelineB 触发 PipelineA 并成功调用作业。

但是 PipelineC 触发了 PipelineA 并且远程作业的调用几乎立即失败并出现此错误

################################################################################################################

  Parameterized Remote Trigger Configuration:
    - job:                     #REDACTED# 
    - remoteJenkinsName:       {pre configured remote jenkins}
    - parameters:              [myVariousParams=myParams,MyOtherParams=Other]
    - blockBuildUntilComplete: true
    - connectionRetryLimit:    5
    - trustAllCertificates:    false

################################################################################################################

Triggering parameterized remote job '#REDACTED#'

  Using globally defined 'Credentials Authentication' as user '#REDACTED#' (Credentials ID '{ID}')

Triggering remote job now. CSRF protection is enabled on the remote server. ERROR: Remote build failed with 'ExceedRetryLimitException' for the following reason: 'Max number of connection retries have been exeeded.'.

org.jenkinsci.plugins.ParameterizedRemoteTrigger.exceptions.ExceedRetryLimitException: Max number of connection retries have been exeeded.  at org.jenkinsci.plugins.ParameterizedRemoteTrigger.utils.HttpHelper.sendHTTPCall(HttpHelper.java:562)  at org.jenkinsci.plugins.ParameterizedRemoteTrigger.utils.HttpHelper.tryCall(HttpHelper.java:596)   at org.jenkinsci.plugins.ParameterizedRemoteTrigger.utils.HttpHelper.tryPost(HttpHelper.java:611)   at org.jenkinsci.plugins.ParameterizedRemoteTrigger.RemoteBuildConfiguration.performTriggerAndGetQueueId(RemoteBuildConfiguration.java:664)     at org.jenkinsci.plugins.ParameterizedRemoteTrigger.pipeline.RemoteBuildPipelineStep$Execution.run(RemoteBuildPipelineStep.java:273)    at org.jenkinsci.plugins.ParameterizedRemoteTrigger.pipeline.RemoteBuildPipelineStep$Execution.run(RemoteBuildPipelineStep.java:249)    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start[=10=](SynchronousNonBlockingStepExecution.java:47)     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)  at java.util.concurrent.FutureTask.run(FutureTask.java:266)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)  at java.lang.Thread.run(Thread.java:748)

ExceedRetryLimitException: Max number of connection retries have been exeeded.

我只是无法理解为什么这适用于一条管道而不是另一条管道。

PipelineB 和 PipelineC 位于同一个文件夹中,除了传递给子作业的一些参数外,它们没有额外的配置

如有任何帮助,我们将不胜感激

当我弄清楚这个问题时,我很想删除它,但我想我会把答案留给可能有这个问题的其他人。

我在管道 A 中触发的远程 'job'。有一些参数,一个是选择参数。

管道 B 和 C 都通过链将参数传递给远程作业(实质上是远程作业的镜像)

管道 B - 有效的管道 - 正在将参数传递给远程作业,该作业是选择参数中的有效选项

管道 C - 不起作用的管道 - 正在为远程作业中的 choice 参数传递一个无效选项

正是这个 'invalid' 选择导致作业立即被拒绝并且没有重试。

编辑(2020 年 3 月):所以使用这个插件加班我注意到它似乎报告任何调用远程作业的问题为 'exceeded retry limit' - 这是一种痛苦,因为它使人们感到困惑,也隐藏了真正的错误。我发现在某些情况下可以在 'local' jenkins 日志中找到更多信息,这通常可以包含更多关于从远程 jenkins 实例返回的信息。远程 jenkins 实例的日志也可能有信息,但在我的情况下我无法访问它们,所以我无法检查 - 希望额外的信息可以帮助其他疲惫的旅行者