![]() Automatic merge from submit-queue (batch tested with PRs 62432, 62868, 63040). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. scheduler: fix race condition in equivalence cache **What this PR does / why we need it**: This adds an equivalence cache test to exercise the race condition observed in https://github.com/kubernetes/kubernetes/issues/62921 and then fixes the race. The `Cache` interface needed a new method to check whether a `NodeInfo` is stale, and `genericScheduler` needed some plumbing to make the `Cache` object available to `podFitsOnNode()`. The solution is, right before writing to the eCache, check the scheduler cache to see if the current `NodeInfo` object is out of date. If the node is out of date, then don't write to the eCache. If the `NodeInfo` is stale, it is because of a cache update that should also invalidate the eCache entry. That invalidation either happens before `podFitsOnNode()` acquires the eCache lock (original bug, so we don't do the write) or blocks until we release that lock (removing the potentially bad entry). Fixes #62921 **Special notes for your reviewer**: **Release note**: equivalence cache is still alpha, so no release note. ```release-note NONE ``` /sig scheduling /assign bsalalamat /assign resouer |
||
---|---|---|
.. | ||
conformance | ||
e2e | ||
e2e_node | ||
fixtures | ||
images | ||
integration | ||
kubemark | ||
list | ||
soak | ||
typecheck | ||
utils | ||
BUILD | ||
OWNERS | ||
test_owners.csv | ||
test_owners.json |