You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The test `TestLeafNodePubAllowedPruning` would sometimes report
(after all go routines calling c.pubAllowed() being done) that
the cache size was greater than the max allowed (128).
@MauriceVanVeen did fix the test with a correct explanation of
why this test flapped, but I think we can improve a tiny bit the
code so that the cache is much likely to be pruned enough.
In this PR, I make `prunePubPermsCache()` attempts up to 5 times
to prune enough the cache, locking/releasing at each attempt to
improve the odds that another routine takes a shot at it.
In my experiments, I am seeing only up to 2 attempts to be below
the max size (and less than 10ms execution time). That being said,
with artificial sleep before the release of the lock, it could
take way more attempts. So for very slow machines, although I have
reverted the changes to the test done in PR#6636, I did add a
little protection to call one more time `c.pubAllowed()` if we
first detect that we are over the limit. If we are still after that
the test will fail and would need another look.
Signed-off-by: Ivan Kozlovic <[email protected]>
0 commit comments