[Gluster-devel] question on glustershd

Emmanuel Dreyfus manu at netbsd.org
Fri Dec 5 19:55:43 UTC 2014


Emmanuel Dreyfus <manu at netbsd.org> wrote:

> The file that cannot heal is gfid dae15ff0-0b16-4ca0-b27d-734f9d2290f8.
> You can see that the sweep completes, but the file is not reported as healed.

I note that in afr_selfheal_metadata(), if we fail to acquire a lock, we
try to unlock inodes we do not have lock for. Couldn't this create some
trouble if the lock is acquired by someone else in the meantime?

        ret = afr_selfheal_inodelk (frame, this, inode, this->name,
                                    LLONG_MAX - 1, 0, data_lock);
        {
                if (ret < AFR_SH_MIN_PARTICIPANTS) {
                        ret = -ENOTCONN;
                        goto unlock;
                }
(...)
unlock: 
        afr_selfheal_uninodelk (frame, this, inode, this->name,
                                LLONG_MAX -1, 0, data_lock);

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu at netbsd.org


More information about the Gluster-devel mailing list