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

Matrix build deadlocks when slaves only have 1 executor

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • matrix-project-plugin
    • None
    • Platform: All, OS: Windows XP

      If I create slaves that only have 1 executor and all of them are required for a
      matrix project, then when the build is started it will deadlock because the
      matrix job is already running on one of the slaves.

      Configuration (in a clean hudson setup):
      Two slaves

      • WS1
        Executor = 1
        Remote FS root = c:\temp\hudson1
      • WS2
        Executor = 1
        Remote FS root = c:\temp\hudson2

      1 Matrix project

      • Build on multiple nodes
        Individual nodes = WS1, WS2
      • Batch command = "dir"

      This is what happens:
      1. Hudson adds matrix job to the queue
      2. Matrix build is started on WS1
      3. Matrix build adds batch job to WS1
      4. Matrix build adds batch job to WS2
      5. Batch job on WS2 completes
      6. Batch job queued on WS1 will never run because the matrix build is already
      using the only executor on WS1.

      I noticed this when I started testing matrix builds. At work we can only have
      one executor per machine, so it is an odd setup and perhaps this issue can be
      ignored.

      A work around is to set the slaves to "Leave this machine for tied jobs only".
      It would be nice with an option to set the machine where the matrix job is
      executed on.

            Unassigned Unassigned
            redsolo redsolo
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: