deadlinecommand dequeue test

It would be great if deadlinecommand had a command mode where you could run it in a ‘dequeue’ test mode, to get a fully verbose decision tree type explanation as to why a certain job is being queued, vs any others.

We get in situations fairly often where we can’t figure out why a particular high priority/weight job is being ignored by slaves. And if we cant figure it out with 10+ years of deadline experience, what chances do users have :slight_smile:

The Slave verbose log was pretty handy when I had to figure those things out in the past (these days I’m pretty keen on figuring it out).

Actually, something me and Jon discussed awhile ago was revamping the “Slave Candidate Filter” into a dialog where you could select a job and it would tell you why it wasn’t rendering on Slave X, Y and Z. Basically it would give a list of Slaves and why they were filtered out.

I’m wondering if this could be complimentary to that… We weren’t thinking about the decision tree at that point, but I guess if there was a version where you had a Slave selected we could maybe dump the dequeue logic. It’d take some revamping of that function to provide the results of decisions to the caller though.

Well we ran into one case today, where the reason for lack of dequeue of a particular high priority job was that there were other jobs with a primary pool that the machine had listed - while the high priority job had ‘none’ as primary and the appropriate pool as secondary.
Would this tool allow for such distinction?

I was thinking something along the lines of:

  1. checking pool: X
    1. checking jobs where primary pool is X
    1. sorting by weight
    1. filtering out blacklists/whitelists, dropping jobs: a,b,c, … etc
    1. limits full, dropping jobs: x,y,z, … etc
    1. remaining jobs: m,n,o, picking highest weight: m, OR
  2. checking pool: Y
  3. 1 … repeat

I like that a lot. I’m not sure if Jon or myself logged anything in the dev system, but I’ll go take a look in a bit.

Whether it’s there or not I’ll add your example to it.