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

Contextualize a fresh FilePath after an agent reconnection

    Details

    • Similar Issues:
    • Released As:
      workflow-durable-task-step 2.31, workflow-basic-steps 2.18

      Description

      PlaceholderExecutable does not bother listening for a closed connection as such, it just lets any nested step actually using the agent fail if the connection dies in the middle. Usually this is fine, but there is a corner case where it is probably wrong (unconfirmed): if an agent is disconnected and reconnected during the first sh in

      node {
        sh 'sleep 999'
        sh 'sleep 999'
      }
      

      then the second sh could fail since it would be using the old Channel, even when the first sh succeeds because the DurableTaskStep.Execution recomputes the FilePath after the ChannelClosedException. (But if Jenkins restarted during the first sh after the reconnection then it should work, since the FilePath would be reconstructed from a FilePathPickle.)

      The fix may be tricky since FilePath.channel is effectively final, so currently whatever workspace is passed from PlaceholderExecutable will be used for the duration of the block. Perhaps BodyInvoker.withContexts should support offering a Provider of contextual objects—in this case something that caches a FilePath so long as it is valid (!Channel.outClosed?), and otherwise falls back to FilePathUtils.find like FilePathPickle.

        Attachments

          Issue Links

            Activity

            jglick Jesse Glick created issue -
            jglick Jesse Glick made changes -
            Field Original Value New Value
            Epic Link JENKINS-35399 [ 171192 ]
            jglick Jesse Glick made changes -
            Link This issue relates to JENKINS-40613 [ JENKINS-40613 ]
            jglick Jesse Glick made changes -
            Link This issue is duplicated by JENKINS-47868 [ JENKINS-47868 ]
            basil Basil Crow made changes -
            Link This issue is duplicated by JENKINS-50504 [ JENKINS-50504 ]
            tom_ghyselinck Tom Ghyselinck made changes -
            Link This issue is related to JENKINS-49707 [ JENKINS-49707 ]
            vivek Vivek Pandey made changes -
            Labels robustness robustness triaged-2018-11
            jglick Jesse Glick made changes -
            Link This issue relates to JENKINS-54643 [ JENKINS-54643 ]
            jglick Jesse Glick made changes -
            Link This issue relates to JENKINS-46067 [ JENKINS-46067 ]
            jglick Jesse Glick made changes -
            Assignee Jesse Glick [ jglick ]
            jglick Jesse Glick made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            jglick Jesse Glick made changes -
            Remote Link This issue links to "PR 101 (Web Link)" [ 22536 ]
            jglick Jesse Glick made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            jglick Jesse Glick made changes -
            Link This issue relates to JENKINS-41791 [ JENKINS-41791 ]
            jglick Jesse Glick made changes -
            Remote Link This issue links to "workflow-basic-steps #86 (Web Link)" [ 23036 ]
            dnusbaum Devin Nusbaum made changes -
            Status In Review [ 10005 ] Resolved [ 5 ]
            Resolution Fixed [ 1 ]
            Released As workflow-durable-task-step 2.31, workflow-basic-steps 2.17
            dnusbaum Devin Nusbaum made changes -
            Released As workflow-durable-task-step 2.31, workflow-basic-steps 2.17 workflow-durable-task-step 2.31, workflow-basic-steps 2.18
            jglick Jesse Glick made changes -
            Link This issue relates to JENKINS-49651 [ JENKINS-49651 ]
            jglick Jesse Glick made changes -
            Link This issue relates to JENKINS-58900 [ JENKINS-58900 ]

              People

              • Assignee:
                jglick Jesse Glick
                Reporter:
                jglick Jesse Glick
              • Votes:
                4 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: