[Gluster-devel] Test-case "./tests/basic/tier/tier-file-create.t" hung
Pranith Kumar Karampuri
pkarampu at redhat.com
Tue Apr 12 12:08:09 UTC 2016
On 04/12/2016 05:31 PM, Jeff Darcy wrote:
>> This is a memory corruption issue which is already reported and there is a
>> patch by Pranith in 3.7 [1] waiting to get reviews. Patch [1] will solve the
>> issue .
>> [1] : http://review.gluster.org/#/c/13574/
> That patch seems to be about making and modifying a copy of xattr_req,
> instead of modifying the original. How exactly does that avoid memory
> corruption? Was some code (not that which changed) keeping a pointer
> to gfid-req in its original location after that had been freed?
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.
Pranith
More information about the Gluster-devel
mailing list