Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-65206

pagerduty plugin - fails silently on old parameters; undocumented breaking change; no upgrade docs

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • pagerduty-plugin
    • None
    • Jenkins 2.277.1, pagerduty-plugin 0.6.2

      We recently upgraded Jenkins and all of our plugins for the first time in about five months. This upgrade included updating the pagerduty plugin from 0.4.1 to 0.6.2. We have three closely-related issues because of this:

      1. The Jenkinsfile/pipeline parameters for the plugin changed. We performed this upgrade a week ago, and just found out that a critical job of ours has been failing with no notification. Other jobs are also failing to open or close incidents, with no indication that they're failing other than a message at the end of the build output. Our pagerduty step in our build is failing, essentially silently - it's displaying an ERROR in the build log, but the build is still succeeding (see output below).
      2. There is absolutely no mention in the pagerduty-plugin version history, at either https://plugins.jenkins.io/pagerduty/#documentation or https://github.com/jenkinsci/pagerduty-plugin#version-history of a backwards-incompatible change in the parameters for this plugin. The gist of the version history after 0.6.2 is "Bug fixes" and feature additions - nothing about any changes to current behavior, let alone a breaking change.
      3. There is no documentation for the pagerduty plugin in the Pipeline Snippet Generator, and there is no documentation that I can find on GitHub or elsewhere for what the new parameters mean, or how to update existing Jenkinsfile pipelines for the new plugin version.

      In terms of user expectations, and my desired resolution to this:

      1. If I pass invalid parameters to the pagerduty() pipeline step, I expect the build to fail, not for it to just continue on until someone happens to see the warning message.
      2. I'd like to see the version history of the plugin, and the README / Documentation, updated to clarify that the parameters have changed in a backwards-incompatible way, and a commitment to actually include breaking changes in the version history in the future.
      3. I'd expect that along with a backwards-incompatible change, there is some documentation explaining what users should do to upgrade, i.e. what the new parameters mean and maybe an example of converting the old params to the new.

      Warning/Error message:

      [Pipeline] pagerduty
       WARNING: Unknown parameter(s) found for class type 'org.jenkinsci.plugins.pagerduty.pipeline.PagerDutyTriggerStep': incDescription,incDetails,incidentKey,serviceKey
       Triggering pagerDuty with routingKey null
       summary null
       severity critical
       ERROR: Tried to trigger PD with routingKey = [null]
       java.lang.IllegalArgumentException: summary cannot be blank.
       at com.github.dikhan.pagerduty.client.events.domain.Payload$Builder.build(Payload.java:228)
       at org.jenkinsci.plugins.pagerduty.util.PagerDutyUtils.triggerPagerDuty(PagerDutyUtils.java:99)
       at org.jenkinsci.plugins.pagerduty.pipeline.PagerDutyTriggerStep$PagerDutyTriggerStepExecution.run(PagerDutyTriggerStep.java:174)
       at org.jenkinsci.plugins.pagerduty.pipeline.PagerDutyTriggerStep$PagerDutyTriggerStepExecution.run(PagerDutyTriggerStep.java:140)
       at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
       at hudson.security.ACL.impersonate2(ACL.java:449)
       at hudson.security.ACL.impersonate(ACL.java:461)
       at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
       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)
       [Pipeline] }
       [Pipeline] // node
       [Pipeline] End of Pipeline
      GitHub has been notified of this commit’s build result
      Finished: SUCCESS
      

       
      Version history in documentation:

       

      Version 0.6.2 (Jan 03, 2021) 
         
         Documentation Fix 
         Bug Fixes (Resolves JENKINS-64485 and #43) 
         
        Version 0.6.1 (Dec 08, 2020) 
         
         Add Change Events support (thanks Adam Vaughan!) 
         Bug fixes 
         Remove Jetty dependency from pom 
         Move docs to Github 
         
        Version 0.6.0 (Dec 06, 2020) 
         
         Add Change Events support (thanks Adam Vaughan!) 
         Bug fixes 
         
        Version 0.4.1 (Mar 12, 2019) 
         
         Add TokenMacro support 
         Bug fixes 
         Code refactor 
      

       

            alexanderlz Alexander Leibzon
            jantman Jason Antman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: