I've observed scheduling deadlock a few times in my Beaker.
It's typical AB-BA deadlock and seems due to Beaker scheduling per Recipe,
while it should, I think, do per RecipeSet.
What do you think?
Reproducible steps are as follows.
Suppose I have 3 jobs below, each contains a recipeset with 2 recipes:
R:11 requires hostA
R:12 requires hostB
R:21 requires hostB
R:22 requires hostC
job3: RS:3 (with high priority)
R:31 requires hostB
R:32 requires hostC
and I submit them with a certain interval inbetween:
=> R:11 and R:12 take hostA and hostB, respectively.
=> R:22 takes hostC.
R:21 is queued, waiting for hostB.
=> R:31 and R:32 are queued.
When job1 completes and hostB is freed,
R:31 takes hostB, since it has higher priority than R:21.
And now we get AB-BA deadlock between RS:2 and RS:3 ...
Jun'ichi Nomura, NEC Corporation