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

时间:2019-11-19 23:05:47

标签: jenkins jenkins-pipeline jenkins-plugins

我有一个触发远程作业的管道,完成后将其发布到Web挂钩-PipelineA

我还有另外两个触发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$0(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位于同一个文件夹中,除了传递给子作业的某些参数外,它们没有其他配置

任何帮助都会得到补偿

1 个答案:

答案 0 :(得分:0)

我很想删除它,但我想我会把答案留给可能有此问题的其他人。

我在管道A中触发的远程“作业”。有一些参数,一个是选择参数。

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

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

管道C(无效的管道)正在为远程作业中的选择参数传递无效的选项

正是这种“无效”的选择导致作业被立即拒绝而不重试。