### Fix the InstallPlan Processing invariant

Previously it required: noIntersection processingClosure failedSet Lets see what it's saying and why it's wrong. Suppose we have P1 and P2 in the processing set. We have Q that depends on P1 and P2. So the processingClosure is {P1,P2,Q}. Now suppose building P1 fails. The failedSet is now {P1,Q1}, and the processingSet is {P2}. The processingClosure however is {P2,Q}. Thus we have a non-empty intersection between the processingClosure and failedSet, namely {Q}. So clearly it's bogus, but also it's not clear if I was thinking of something else that is correct. So we just drop this part of the invariant. This should fix issue #3889.

Please register or sign in to comment