1. 10 9月, 2015 2 次提交
  2. 20 8月, 2015 3 次提交
    • J
      [JENKINS-29936] when removing an item use ACL.SYTEM. · 9a63d6f8
      James Nord 提交于
      The OldDataMonitor should be using ACL.system not the ACL of the calling
      thread - this also avoids the deadlock when an authorization strategy is
      being saved (locking the auth strategy) which will call into the ODM at
      the same point the ODM is being called an a Run has been saved (which will
      cause a lookup of the job which will do a permissions check).
      
      (cherry picked from commit 8a077a80)
      9a63d6f8
    • S
      [FIXED JENKINS-29568] A better fix · db1e2d2a
      Stephen Connolly 提交于
      - 252e1296 doesn't work for all cases as there are code paths
        where a pending launch can be removed from the pending list and not have spent() called.
      - There was no reason for iterating the list twice anyway, as all of this takes place with the locks held
      - My notifying each one as we process, if there is an Error, we will not leave any stranded. The next run
        through, if there is one, will cover those instances.
      
      (cherry picked from commit 4f0ca16b)
      db1e2d2a
    • S
      The call to PlannedNode.spent() *must* always occur · f2500bd5
      Stephen Connolly 提交于
      - They have been removed from the pendingLaunches, so once we leave this method we have no reference to them
      - Arguably the call to spent should take place when removing from the pendingLaunches, but that would change
        the method contract
      
      (cherry picked from commit 252e1296)
      f2500bd5
  3. 11 8月, 2015 1 次提交
  4. 31 7月, 2015 4 次提交
  5. 28 7月, 2015 2 次提交
  6. 07 7月, 2015 8 次提交
    • O
      Avoid Long#compare for now · 3005532a
      Oliver Gondža 提交于
      3005532a
    • O
      Avoid diamonds for now · 260b0947
      Oliver Gondža 提交于
      260b0947
    • S
      [JENKINS-28926] Adding test case · 85960040
      Stephen Connolly 提交于
      - I was forgetting the call to `rebuildDependencyGraph()` which was why the test didn't work for me
      
      (cherry picked from commit c44c0884)
      85960040
    • S
      [FIXED JENKINS-28926] Block while upstream/downstream building cycles never complete · 4f4a64a5
      Stephen Connolly 提交于
      - One could argue that without this change the system is functioning correctly and that previous behaviour
        was a bug. On the other hand, people have come to rely on the previous behaviour.
      - The issue really centeres around state changes in the blocked tasks. Since blocking on upstream/downstream
        relies on checking the building projects and the queued (excluding blocked) tasks we need any change in
        the blocked task list to be visible immediately (i.e. update the snapshot)
      - I was able to reliably reproduce this behaviour with a convoluted set of manually configured projects
        but turning this into a test case has not proved quite as easy. Manual testing confirms that the issue is
        fixed for my manual test case
      - I have also added a sorting of the blocked list when probing for tasks to unblock. This should prioritise
        tasks as intended by the QueueSorter
      
      (cherry picked from commit de877367)
      4f4a64a5
    • D
      [FIX JENKINS-14899] Don't use truncating LargeText for /consoleText · c3dcaeb8
      Daniel Beck 提交于
      (cherry picked from commit 20bd4e30)
      c3dcaeb8
    • L
      Contine the JENKINS-27289 ticket: update the getResources as well · 0fcb5881
      liorha 提交于
      (cherry picked from commit 40e75129)
      0fcb5881
    • S
      [FIXED JENKINS-28840] Deadlock between Queue.maintain and Executor.interrupt · 119fcbbf
      Stephen Connolly 提交于
      More fun here:
      
      - All this originates from Executor extending Thread.
      - There is funky logic in the lock handling code of the JVM that makes assumptions
        about how it might proceed with the lock when the thread holding the lock has its
        interrupt flag set.
      - Really it would be better if Executor did not extend Thread as that way we wouldn't
        have to deal with some of that complexity. But OTOH we are where we are and backwards
        compatibility may make such a change not possible without a lot of breakage.
      - Fixing the issue at hand, firstly requires that interrupting a Computer happens with the
        Queue lock held (to speed up tests we have Jenkins.cleanup get the lock for all Computers)
        That prevents the Queue maintain thread from getting caught
      - Secondly, when removing an executor from a computer we process the removal while
        holding the Queue lock, but we move the removal itself to a separate thread if we cannot
        get the Queue lock in order to avoid deadlock.
      - Also add helper methods to wrap tasks to be performed while holding the lock
        and a helper method for Runnables that exposes the tryLock functionality
      
      (cherry picked from commit 6f343dc7)
      119fcbbf
    • S
      [FIXED JENKINS-28690] Deadlock in hudson.model.Executor · c24c3236
      Stephen Connolly 提交于
      - Rather fun one here. The Lock code relies on assuming that Thread.interrupted() is clear on entry
      - If it then sees Thread.interrupted() set, it will interrupt the current thread in order to set the
        flag again.
      - Executor is a thread that does funky things with an overridden interrupt method
      - Executor.abortResult() is used to track a build be interrupted or aborted in some other way
      - As a result the abortResult can cause a deadlockif there is a genuine interruption
      - This fix clears the interrupt flag in abortResult() and uses the write lock in order to ensure:
          - The same lock as used in interrupt() is helf
          - The interrupt flag is clear
      - Clearing the interrupt flag should be safe as the only time it is called is immediately after
        an interruption and the resulting exception is caught and rethrown/logged anyway
      
      (cherry picked from commit ddb0a472)
      c24c3236
  7. 17 6月, 2015 3 次提交
  8. 09 6月, 2015 17 次提交