On 04/12/2016 05:54 PM, Jeff Darcy wrote:
tier can lead to parallel lookups in two different epoll threads on
hot/cold tiers. The race-window to hit the common-dictionary in lookup
use-after-free is too low without dict_copy_with_ref() in either ec/afr.
In either afr/ec side one thread should be executing dict_serialization
in client while the other thread should be doing dict_set(). With
dict_copy_with_ref() in ec probability to hit the issue is more. Once
the patch in afr is also merged, there is no race anymore. We still need
a neat way to fix this problem though. I mean at the dict infra level.
Thanks for the explanation, Pranith. What kind of new dict API do you
think would solve this?
dict_copy_with_ref()/dict_foreach() are not race proof. but taking a
lock while we go through the elements is slow. So we need a better way
to do this without leading to any inconsistencies.
Pranith
_______________________________________________
Gluster-devel mailing list
Gluster-devel@xxxxxxxxxxx
http://www.gluster.org/mailman/listinfo/gluster-devel