[Gluster-devel] 1402538 : Assertion failure during rebalance of symbolic links

Xavier Hernandez xhernandez at datalab.es
Thu Dec 15 12:37:18 UTC 2016


On 12/15/2016 12:48 PM, Raghavendra Gowdappa wrote:
> I need to step back a little to understand the RCA correctly.
>
> If I understand the code correctly, the callstack which resulted in failed setattr is (in rebalance process):
>
> dht_lookup -> dht_lookup_cbk -> dht_lookup_everwhere -> dht_lookup_everywhere_cbk -> dht_lookup_everywhere_done -> dht_linkfile_create -> dht_lookup_linkfile_create_cbk -> dht_linkfile_attr_heal -> setattr
>
> However, this setattr doesn't change the file type.
>
> <dht_linkfile_attr_heal>
>
>         STACK_WIND (copy, dht_linkfile_setattr_cbk, subvol,
>                     subvol->fops->setattr, &copy_local->loc,
>                     &stbuf, (GF_SET_ATTR_UID | GF_SET_ATTR_GID), xattr);
>
> </dht_linkfile_attr_heal>
>
> As can be seen above, the setattr call only changes UID/GID. So, I am at loss to explain why the file type changed. Has anyone has any other explanation?

Does the inode passed to setattr represent the regular file just created 
? or does it contain information about the previous file (the one it's 
being replaced) that in this case is a symbolic link ?

Xavi

>
> regards,
> Raghavendra
>



More information about the Gluster-devel mailing list