[Bugs] [Bug 1297311] Attach tier + nfs : Creates fail with invalid argument errors

bugzilla at redhat.com bugzilla at redhat.com
Mon Jan 11 09:02:31 UTC 2016


https://bugzilla.redhat.com/show_bug.cgi?id=1297311



--- Comment #1 from Mohammed Rafi KC <rkavunga at redhat.com> ---
RCA:


After add-brick, NFS server will be restarted to load new graph. ie NFS server
inode table will be fresh after restarting the process. So as part of the fop,
resolver will send a lookup on an entry if inode is not lookedup before. During
the lookup if healing requires for the entry from DHT (when directories are not
present on all of the subvol), we will initiate a healing to create the
directories on all of the subvolume. As part of the healing, we are doing a
series of named lookup on all the parents starting from root if the inodes are
not present, so for a successful lookup we will link the inode to inode table
also. This lookup will be initiated from dht, so inode ctx will be created only
for the xlators which are beneath of dht.

Since we already linked the inode, ie  resolver will not do a lookup for next
fop. So xlator which are above dht will not have inode ctx.

Here in this case, svc_access was complaining about missing inode_ctx.

Possible solutions:

1)  Move dht healing code to interface layer, if healing is required then dht
should let the interface layer about healing, and need to give a path to heal.
So that each interface layer should do a healing which include fuse, nfs,
gfapi.

2) Do not link the inode from any of the xlators other than master xlators, ie
do not link from dht. This will cause a huge performance degradation in healing
code path, and we might need to do some hack to heal without a linked inode.

3) During resolving of an entry, currently resolving will be successful if
there is an inode in the inode table. Make an extra check to see if the
inode_ctx is present or not, if inode_ctx is not present for a linked inode,
then resolver should consider as an invalid inode and need to do a lookup with
the same inode.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list