Description
If you have a QueueTaskDispatcher which returns a CauseOfBlockage from canRun, that becomes BlockedItem.getCauseOfBlockage, which is displayed in the queue widget.
But if it returns a CauseOfBlockage from canTake (AFAICT the same for Node.canTake), JobOffer.canTake sees that it is non-null, throws out the actual object with all of its diagnostics, and you wind up with a BuildableItem with CauseOfBlockage.BecauseNodeIsBusy which tells you nothing and may be totally misleading.
By asking an implementation to return a @CheckForNull CauseOfBlockage rather than a simple boolean, the implication is that a non-null return value will be displayed to the user. Currently this is not the case.
To add insult to injury, Support Core does not report the result of canTake.
Attachments
Issue Links
- is related to
-
JENKINS-45927 CauseOfBlockage of items in Queue is extremely verbose
-
- Open
-
- relates to
-
JENKINS-35403 QueueDecisionHandler should be able to return CauseOfBlockage
-
- Open
-
-
JENKINS-6598 Let Node and NodeProperty have more control over whether a node can run a task
-
- Closed
-
- links to