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

Users should be able to custom configure the timeout on pipeline build wrappers/steps

    Details

    • Similar Issues:

      Description

      As part of JENKINS-32986 pipeline cps plugin has introduced a 5 min timeout for each instruction on the script.
      Custom scripts that are implemented as jenkins.tasks.BuildWrapper are now subject to this limitation.
      As BuildWrappers are a very useful and common extension point it seems to me that Jenkins administrators should be able to increase this hard coded timeout by passing a configuration (maybe a -D vm param)
      OR (even better) developers that are writing Build wrappers can provide something like a max timeout hint to cps treat it properly (maybe by implementing an interface or an annotation).

      This change on behavior from 2.4 to 2.5 pipeline jenkins broke our plugin on some use cases.

      As DurableSteps (that are not subject to this limitation) are "steps" not "wrappers" I cannot see how to change our implementation to some structure that acts as a wrapper without touch the 5 min limitation.

      Relevant commit
      https://github.com/jenkinsci/workflow-cps-plugin/commit/c0deed0a3b546ebcb59ea25681ed3ac8b13fe6bb

        Attachments

          Issue Links

            Activity

            Hide
            lucasam Lucas Machado added a comment -

            This PR https://github.com/jenkinsci/workflow-cps-plugin/pull/115 can add this parameter to the server level.

            Show
            lucasam Lucas Machado added a comment - This PR https://github.com/jenkinsci/workflow-cps-plugin/pull/115 can add this parameter to the server level.
            Hide
            jglick Jesse Glick added a comment -

            Increasing the timeout is a bad fix. Really your plugin must stop blocking the CPS VM thread. Pending JENKINS-43276, if setUp can be expected to take more than a second or so, then you must not implement SimpleBuildWrapper.

            Show
            jglick Jesse Glick added a comment - Increasing the timeout is a bad fix. Really your plugin must stop blocking the CPS VM thread. Pending  JENKINS-43276 , if setUp can be expected to take more than a second or so, then you must not implement  SimpleBuildWrapper .
            Hide
            lucasam Lucas Machado added a comment -

            We are working on the fix.
            Our current limitation is actually the Tail call of a build wrapper.
            Using DurableStep and changing the approach we are able to run our "setup" without block but I was not able to find a way to remove the tail call of the build wrapper from CPS thread

            Show
            lucasam Lucas Machado added a comment - We are working on the fix. Our current limitation is actually the Tail call of a build wrapper. Using DurableStep and changing the approach we are able to run our "setup" without block but I was not able to find a way to remove the tail call of the build wrapper from CPS thread
            Hide
            ssutherland Sean Sutherland added a comment -

            {quote} if setUp can be expected to take more than a second or so, then you must not implement SimpleBuildWrapper. {quote}

            Jesse Glick if we're not allowed to use SimpleBuildWrapper, then what is the approach we should take? Are there any examples we can reference of block pipeline steps that have a slow upfront component before entering the block (or cleanup after)? 

            Show
            ssutherland Sean Sutherland added a comment - {quote} if  setUp  can be expected to take more than a second or so, then you must not implement  SimpleBuildWrapper . {quote} Jesse Glick if we're not allowed to use SimpleBuildWrapper, then what is the approach we should take? Are there any examples we can reference of block pipeline steps that have a slow upfront component before entering the block (or cleanup after)? 
            Hide
            jglick Jesse Glick added a comment -

            You can implement Step directly. I am not sure of a directly applicable example offhand.

            Show
            jglick Jesse Glick added a comment - You can implement Step directly. I am not sure of a directly applicable example offhand.

              People

              • Assignee:
                Unassigned
                Reporter:
                lucasam Lucas Machado
              • Votes:
                5 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: