Hide Forgot
As per bug 668473, the scheduler includes a dead_recipes routine which checks for queued recipes which can never proceed because their requirements can no longer be satisfied. Right now, it only looks for recipes whose distro has been completely expired from all labs. But if the recipe has <hostRequires/> which need a specific lab, and the distro has been expired from *that particular lab* (but not from all), it is not picked up by the dead_recipes routine even though the recipe will never be scheduled.
It is not trivial to determine whether a given <hostRequires/> limits the recipe to a particular lab. There are also indirect limitations, such as if the <hostRequires/> effectively limits the recipe to systems which are in labs where the distro is not present. We also have this outstanding problem of how Beaker can determine whether a distro tree is missing because it's been deleted, or hasn't been synced yet. So I will need to think about a good way to solve this...
Closing as WONTFIX since solving this problem is not really feasible. A better solution is to make sure distros are deleted from all labs promptly when they expire: bug 717424.