[Gluster-devel] Test-case "./tests/basic/tier/tier-file-create.t" hung

Pranith Kumar Karampuri pkarampu at redhat.com
Tue Apr 12 12:29:25 UTC 2016



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


More information about the Gluster-devel mailing list