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