[Gluster-devel] crypt xlator bug

Pranith Kumar Karampuri pkarampu at redhat.com
Fri Apr 3 05:56:40 UTC 2015


On 04/02/2015 07:27 PM, Raghavendra Bhat wrote:
> On Thursday 02 April 2015 05:50 PM, Jeff Darcy wrote:
>>> I think, crypt xlator should do a mem_put of local after doing 
>>> STACK_UNWIND
>>> like other xlators which also use mem_get for local (such as AFR). I am
>>> suspecting crypt not doing mem_put might be the reason for the bug
>>> mentioned.
>> My understanding was that mem_put should be called automatically from
>> FRAME_DESTROY, which is itself called from STACK_DESTROY when the fop
>> completes (e.g. at FUSE or GFAPI).  On the other hand, I see that AFR
>> and others call mem_put themselves, without zeroing the local pointer.
>> In my (possibly no longer relevant) experience, freeing local myself
>> without zeroing the pointer would lead to a double free, and I don't
>> see why that's not the case here.  What am I missing?
>
> As per my understanding, the xlators which get local by mem_get should 
> be doing below things in callback funtion  just before unwinding:
>
> 1) save frame->local pointer (i.e. local = frame->local);
> 2) STACK_UNWIND
> 3) mem_put (local)
>
> After STACK_UNWIND and before mem_put any reference to fd or inode or 
> dict that might be present in the local should be unrefed (also any 
> allocated resources that are present in local should be freed). So 
> mem_put is done at last. To avoid double free in FRAME_DESTROY, 
> frame->local is set to NULL before doing STACK_UNWIND.
>
> I suspect not doing 1 of the above three operations (may be either 1st 
> or 3rd) in crypt xlator might be the reason for the bug.
I still don't understand why http://review.gluster.org/10109 is working. 
Does anyone know the reason? How are you guys re-creating the crash? I 
ran crypt.t but no crashes on my laptop. Could some one help me 
re-create this issue.

Pranith
>
> Regards,
> Raghavendra Bhat
>
>> _______________________________________________
>> Gluster-devel mailing list
>> Gluster-devel at gluster.org
>> http://www.gluster.org/mailman/listinfo/gluster-devel
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at gluster.org
> http://www.gluster.org/mailman/listinfo/gluster-devel



More information about the Gluster-devel mailing list