Details
-
Bug
-
Resolution: Fixed
-
Major
-
7.1.4, 7.1.0, 7.1.1, 7.1.2, 7.2.0, 7.1.3, 7.2.1, 7.1.5
-
Untriaged
-
0
-
Unknown
Description
A number of threads/paths now make use of BucketManager::forEach and the exclusive lock inside forEach (all_buckets) means those threads end up serialised/blocked. If the callback given to forEach is slow, this leads to issues, for example the mc_time callback which runs on the accept thread will be blocked (as it has code using forEach), delaying new connections.
We should make forEach use a read lock