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

Agent time out with P4Groovy sync after 5 minutes?

    Details

    • Type: Improvement
    • Status: Open (View Workflow)
    • Priority: Trivial
    • Resolution: Unresolved
    • Component/s: p4-plugin
    • Labels:
    • Environment:
      1.10.0 P4Plugin
      2.176.1 (Cloudbees)
    • Similar Issues:

      Description

      When using 'p4.run("sync","//PATH/...") the Windows 10 slave drops the connection after 5 minutes every time. This was proven on a Webex using Wireshark.

      If 'p4sync()' is used the command ran to completion (20 minutes). Potentially there is a problem with P4Groovy commands not displaying any output till the end of the command that is triggering this problem.

      This ticket has been created to record the occurrence, allow me to try and reproduce the problem and to be a place holder where other reports of the same problem can be recorded.

      Note: Cloudbees support were unable to find a problem on their side.

       

      Example jenkinsfile (in editor):

      pipeline{
          agent{
              label 'Win10'
          }
          stages{
              stage('P4 Sync'){
                  steps{
                      script{
                          def p4 = p4 credential: 'MasterCredential', workspace: manualSpec(charset: 'utf8', name: 'CLIENT', pinHost: false, spec: clientSpec(allwrite: true, backup: false, clobber: false, compress: false, line: 'WIN', locked: false, modtime: false, rmdir: false, streamName: '', type: 'WRITABLE', view: '//depot/... //CLIENT/...'))
                          p4.run("sync","-f", "//depot/PATH/...#0")
                          p4.run("sync","-f", "//depot/PATH/...")
                      }
                  }
              }
          }
      }
      

        Attachments

          Issue Links

            Activity

            Hide
            boczar Alexander Boczar added a comment -

            I'm running into this variation when running P4Groovy:

            It times out after 30 seconds if there's no output because of this hard-coded beauty:

             

            https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/Request.java:171

              // wait until the response arrives
            t.setName(name+" / waiting for "channel.getName()" id="+id);
            while(response==null && !channel.isInClosed())
            // I don't know exactly when this can happen, as pendingCalls are cleaned up by Channel,
            // but in production I've observed that in rare occasion it can block forever, even after a channel
            // is gone. So be defensive against that.
            wait(30*1000);

            if (response==null)
            // channel is closed and we still don't have a response
            throw new RequestAbortedException(null);

            Show
            boczar Alexander Boczar added a comment - I'm running into this variation when running P4Groovy: It times out after 30 seconds if there's no output because of this hard-coded beauty:   https://github.com/jenkinsci/remoting/blob/master/src/main/java/hudson/remoting/Request.java :171   // wait until the response arrives t.setName(name+" / waiting for " channel.getName() " id="+id); while(response==null && !channel.isInClosed()) // I don't know exactly when this can happen, as pendingCalls are cleaned up by Channel, // but in production I've observed that in rare occasion it can block forever, even after a channel // is gone. So be defensive against that. wait(30*1000); if (response==null) // channel is closed and we still don't have a response throw new RequestAbortedException(null);

              People

              • Assignee:
                Unassigned
                Reporter:
                p4karl Karl Wirth
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated: