Queue.maintain - tolerate misbehaving sorter.sortBuildableItems()
Any plugin that implements the sort step could throw an exception which would break
the maintain() step. As sorting is really an optional step, it really should not be fatal.
Instead, we wrap the step in a try block, log it, and move on with life.
@@ -1567,8 +1567,15 @@ public class Queue extends ResourceController implements Saveable {
}
}
- if (s != null)
+ if (s != null) {
+ try {
s.sortBuildableItems(buildables);
+ } catch (Throwable e) {
+ // We don't really care if the sort doesn't sort anything, we still should
+ // continue to do our job. We'll complain about it and continue.
+ LOGGER.log(Level.WARNING, "s.sortBuildableItems() threw Throwable: {0}", e);
+ }
+ }
// Ensure that identification of blocked tasks is using the live state: JENKINS-27708 & JENKINS-27871
updateSnapshot();
