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

Jenkins tries to build jobs on nodes that are removed

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor
    • core

      Executor#isIdle() can return true when an executor is not actually idle as it tests against the executable field while the true determination of idleness is from the workUnit field as once that is non-null the Executor is committed to execution of the work unit. The executable field only becomes non-null after a lock on Queue has been established.

      Thus retention strategies can end up removing a node while the Executor is awaiting a lock on Queue and then the build fails without ever having been started. While retention strategies should only perform idle checks when holding a lock on the Queue this does not help the problem as the root cause is the incorrect reporting of state in Executor#isIdle()

            Unassigned Unassigned
            stephenconnolly Stephen Connolly
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: