I've also seen that. I'm not sure it's a "bug". It's just a result of the current structure of the code.
The job structure doesn't have a place to put multiple priorities, so it seems like you end up with the priority of whatever priority was checked last during scheduling.
If you plow through the multifactor backfill stuff, it actually checks the job with each of the appropriate priorities for each of the partitions, but it seems to leave the value in the job structure of whatever gets checked last. Since the lowest priority is checked last, that usually ends up as the job priority in the job structure.
There are reasons why the backfill code may not get through all the jobs, so it's not always the case that the lowest priority is the one that sticks in the job record, but that seems to be the usual result.
With our configuration, I can submit a set of jobs that can't start right away and the priorities look like:
JOBID PARTITION USER ACCOUNT NOD ST TIME_LEFT START_TIME SUBMIT_TIME PRIOR NODELIST(REASON)
1878958 large,bkfi skouson mscfops 256 PD 8:00:00 N/A 2017-08-15T08:07:41 24000 (None)
1878959 large,bkfi skouson mscfops 256 PD 8:00:00 N/A 2017-08-15T08:07:41 24000 (None)
1878960 large,bkfi skouson mscfops 256 PD 8:00:00 N/A 2017-08-15T08:07:41 24000 (None)
1878961 large,bkfi skouson mscfops 256 PD 8:00:00 N/A 2017-08-15T08:07:41 24000 (None)
1878962 large,bkfi skouson mscfops 256 PD 8:00:00 N/A 2017-08-15T08:07:41 300 (None)
1878963 large,bkfi skouson mscfops 256 PD 8:00:00 N/A 2017-08-15T08:07:41 300 (None)
The large partition requires a QOS with a 4 job limit, but the bkfill partition (with a lower priority that doesn't allow resource reservation) can run lots of jobs. The initial squeue immediately after submission shows the priorities above. Sometimes, the initial squeue shows some of each priority, sometimes it's all the same priority, I'm not sure why that is.
Waiting for the backfill schedule to run, results in each job getting an estimated start time, since they're in the large partition with a priority above the bf_min_prio_reserve threshold. However the job priority is only 304, which is the priority backfill checks last. Running sprio also ends up with the same priority of 304
I think this could be fixed to list each job/partition combo with its own priority, However, I didn't see an easy way that didn't require changes to the job structure.
-----
Gary Skouson