Dav*_*ave 3 jenkins jenkins-plugins jenkins-pipeline
我有一个触发远程作业的管道,然后当它完成时,发布到一个网络钩子 - 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$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.
Run Code Online (Sandbox Code Playgroud)
我只是无法理解为什么这可以从一个管道而不是另一个管道起作用。
PipelineB 和 PipelineC 位于同一个文件夹中,除了一些传递给子作业的参数外,它们没有额外的配置
任何帮助都会得到认可
当我弄清楚时,我很想删除它,但我想我会把答案留给可能有这个问题的其他人。
我在管道 A 中触发的远程“作业”有一些参数,其中一个是选择参数。
管道 B 和 C 都通过链将参数传递给远程作业(本质上是镜像远程作业)
管道 B - 有效的管道 - 将参数传递给远程作业,该参数是选择参数中的有效选项
管道 C - 那个不起作用的管道 - 正在为远程作业中的选择参数传递一个无效选项
正是这种“无效”选择导致作业立即被拒绝而不是重试。
编辑(2020 年 3 月):因此我在使用此插件时加班加点,我注意到它似乎将调用远程作业的任何问题报告为“超出重试限制”——这很痛苦,因为它使人们感到困惑并且还隐藏了真正的错误。我发现在某些情况下,可以在“本地”jenkins 日志中找到更多信息,这通常包含有关从远程 jenkins 实例返回的内容的更多信息。远程 jenkins 实例的日志可能也有信息,但在我的情况下,我无法访问它们,所以我无法检查 - 希望额外的信息可以帮助其他疲惫的旅行者
| 归档时间: |
|
| 查看次数: |
2586 次 |
| 最近记录: |