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

Awful job step execution performance over WinRM connection

      I'm using the ec2-plugin to launch Windows nodes in EC2. The instances are launched correctly, and the slave.jar is started over WinRM once a WinRM connection was established.

      Running a simple freestyle job containing a single batch step (echo TEST) works perfectly fine and finishes immediately.

      Running a similar pipeline job (bat 'echo TEST') takes 22 minutes (!!!) to finish. Adding the same node to jenkins manually via JNLP allows this job to also finish immediately. I can consistently reproduce these behaviours.

      Here's some log output from the durable step plugin and the winrm package of the ec2-plugin: https://gist.github.com/anonymous/074223af8b5942b0363f

      There's more log information available, but it looks mostly the same: A lot of InterruptedExceptions all over the place.

      As running the slave over JNLP instead of WinRM seems to work perfectly fine, I believe this to be some weird interaction between the WinRM connection and the Filesystem Monitors in the Durable Task plugin.

          [JENKINS-32547] Awful job step execution performance over WinRM connection

          Jesse Glick added a comment -

          I was not aware there was a WinRM-based launcher. Is that in the EC2 plugin? I remember suggesting it to kohsuke that one could be created to supersede the DCOM launcher, and christ66 started to play with it, but kohsuke came up with a list of reasons why it would never work well enough to be usable. Maybe you just should not use it?

          Jesse Glick added a comment - I was not aware there was a WinRM-based launcher. Is that in the EC2 plugin? I remember suggesting it to kohsuke that one could be created to supersede the DCOM launcher, and christ66 started to play with it, but kohsuke came up with a list of reasons why it would never work well enough to be usable. Maybe you just should not use it?

          It's part of the EC2 plugin, yes.

          I'd rather use a different transport, but the ec2-plugin only allows to use WinRM based communication, so there's that. I'm still in the process of building our CI environment, so I understand that I might run into more issues down the road, but so far the ec2-plugin looked like a good fit, and this was the first major issue I've found.

          Arthur Schreiber added a comment - It's part of the EC2 plugin, yes. I'd rather use a different transport, but the ec2-plugin only allows to use WinRM based communication, so there's that. I'm still in the process of building our CI environment, so I understand that I might run into more issues down the road, but so far the ec2-plugin looked like a good fit, and this was the first major issue I've found.

          Code changed in jenkins
          User: Jesse Glick
          Path:
          CHANGES.md
          durable-task-step/src/main/java/org/jenkinsci/plugins/workflow/steps/durable_task/DurableTaskStep.java
          http://jenkins-ci.org/commit/workflow-plugin/7451eabf8b47eebc5e8926af62959542a0a8d0b4
          Log:
          [FIXED JENKINS-32547] Merging #316.

          Compare: https://github.com/jenkinsci/workflow-plugin/compare/bf0388000b94...7451eabf8b47

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Jesse Glick Path: CHANGES.md durable-task-step/src/main/java/org/jenkinsci/plugins/workflow/steps/durable_task/DurableTaskStep.java http://jenkins-ci.org/commit/workflow-plugin/7451eabf8b47eebc5e8926af62959542a0a8d0b4 Log: [FIXED JENKINS-32547] Merging #316. Compare: https://github.com/jenkinsci/workflow-plugin/compare/bf0388000b94...7451eabf8b47

            jglick Jesse Glick
            arthurschreiber Arthur Schreiber
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: