Re: [Nfs-ganesha-devel] NLM async locking
I can look at your fix but the problem here has nothing to do with cancel. This locks should work without client involvement. Can you point me again to ganltc. Marc. From: Malahal NaineniTo: Marc Eshel/Almaden/IBM@IBMUS Cc: Frank Filz , nfs-ganesha-devel Date: 08/29/2016 06:25 PM Subject:Re: [Nfs-ganesha-devel] NLM async locking Marc, there is a known issue with that failure message but I thought client needs a cancel request. See if my hack fixes it but I never got a chance to fix it properly, so is not in upstream yet. See 924e7464f in ganltc repo and see that helps. Regards, Malahal. On Mon, Aug 29, 2016 at 3:50 PM, Marc Eshel wrote: > Hi Frank, > > I see the following failure: > 1. Get conflicting locks from 3 clients > cli 1 gets 0-100 > cli 2 is blocked on 0-1000 > cli 3 is blocked on 0-1 > 2. cli 1 unlocks > up-call for cli 2 and 3 to retry > cli 2 gets 0-1000 > cli 3 is blocked on 0-1000 > 3. cli 2 unlocks > up-call for cli 3 but Ganesha fails > > /* We must be out of sync with FSAL, this is fatal */ > LogLockDesc(COMPONENT_STATE, NIV_MAJ, "Blocked Lock Not Found for" > , > obj, owner, lock); > LogFatal(COMPONENT_STATE, "Locks out of sync with FSAL"); > > I think the problem is in step 2, after cli 3 failed for the second time > it is not put back in queue, the sbd_list. > > Can you please confirm this logic is very complicated. > > Thanks, Marc. > > > -- > ___ > Nfs-ganesha-devel mailing list > Nfs-ganesha-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
Re: [Nfs-ganesha-devel] NLM async locking
Marc, there is a known issue with that failure message but I thought client needs a cancel request. See if my hack fixes it but I never got a chance to fix it properly, so is not in upstream yet. See 924e7464f in ganltc repo and see that helps. Regards, Malahal. On Mon, Aug 29, 2016 at 3:50 PM, Marc Eshelwrote: > Hi Frank, > > I see the following failure: > 1. Get conflicting locks from 3 clients > cli 1 gets 0-100 > cli 2 is blocked on 0-1000 > cli 3 is blocked on 0-1 > 2. cli 1 unlocks > up-call for cli 2 and 3 to retry > cli 2 gets 0-1000 > cli 3 is blocked on 0-1000 > 3. cli 2 unlocks > up-call for cli 3 but Ganesha fails > > /* We must be out of sync with FSAL, this is fatal */ > LogLockDesc(COMPONENT_STATE, NIV_MAJ, "Blocked Lock Not Found for" > , > obj, owner, lock); > LogFatal(COMPONENT_STATE, "Locks out of sync with FSAL"); > > I think the problem is in step 2, after cli 3 failed for the second time > it is not put back in queue, the sbd_list. > > Can you please confirm this logic is very complicated. > > Thanks, Marc. > > > -- > ___ > Nfs-ganesha-devel mailing list > Nfs-ganesha-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] Change in ffilz/nfs-ganesha[next]: FSAL_GPFS: more fixes and cleanup for multi-fd
>From: es...@us.ibm.com has uploaded a new change for review. https://review.gerrithub.io/289448 Change subject: FSAL_GPFS: more fixes and cleanup for multi-fd .. FSAL_GPFS: more fixes and cleanup for multi-fd Change-Id: Idf6a1eb2a003fd8f45544665648d49aba77d637e Signed-off-by: Marc Eshel --- M src/FSAL/FSAL_GPFS/file.c M src/FSAL/FSAL_GPFS/fsal_fileop.c M src/FSAL/FSAL_GPFS/fsal_mds.c M src/FSAL/FSAL_GPFS/handle.c M src/SAL/nfs4_state.c 5 files changed, 31 insertions(+), 11 deletions(-) git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/48/289448/1 -- To view, visit https://review.gerrithub.io/289448 To unsubscribe, visit https://review.gerrithub.io/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Idf6a1eb2a003fd8f45544665648d49aba77d637e Gerrit-PatchSet: 1 Gerrit-Project: ffilz/nfs-ganesha Gerrit-Branch: next Gerrit-Owner: es...@us.ibm.com -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
Re: [Nfs-ganesha-devel] NLM async locking
> I see the following failure: > 1. Get conflicting locks from 3 clients > cli 1 gets 0-100 > cli 2 is blocked on 0-1000 > cli 3 is blocked on 0-1 > 2. cli 1 unlocks > up-call for cli 2 and 3 to retry > cli 2 gets 0-1000 > cli 3 is blocked on 0-1000 > 3. cli 2 unlocks > up-call for cli 3 but Ganesha fails > > /* We must be out of sync with FSAL, this is fatal */ > LogLockDesc(COMPONENT_STATE, NIV_MAJ, "Blocked Lock Not Found > for" > , > obj, owner, lock); > LogFatal(COMPONENT_STATE, "Locks out of sync with FSAL"); > > I think the problem is in step 2, after cli 3 failed for the second time it is not > put back in queue, the sbd_list. > > Can you please confirm this logic is very complicated. That sounds like a likely problem. I'd have to dig into the code to see why... May take me a day or two to investigate. Frank --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] NLM async locking
Hi Frank, I see the following failure: 1. Get conflicting locks from 3 clients cli 1 gets 0-100 cli 2 is blocked on 0-1000 cli 3 is blocked on 0-1 2. cli 1 unlocks up-call for cli 2 and 3 to retry cli 2 gets 0-1000 cli 3 is blocked on 0-1000 3. cli 2 unlocks up-call for cli 3 but Ganesha fails /* We must be out of sync with FSAL, this is fatal */ LogLockDesc(COMPONENT_STATE, NIV_MAJ, "Blocked Lock Not Found for" , obj, owner, lock); LogFatal(COMPONENT_STATE, "Locks out of sync with FSAL"); I think the problem is in step 2, after cli 3 failed for the second time it is not put back in queue, the sbd_list. Can you please confirm this logic is very complicated. Thanks, Marc. -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
Re: [Nfs-ganesha-devel] md-cache (setattr2) optimization
> On 08/29/2016 01:35 PM, Soumya Koduri wrote: > > Hi Dan/Frank, > > > > I was looking at mdcache code a bit for performance optimizations > > possible. I have a couple of queries. Please let me know your inputs - > > > > * In ex setattr2(), we have support for FSAL to update the attributes > > in the obj handle. Can we make use of them and get away with > > getattrs() post that in mdcache_setattr2()? Or better can we update > > just the attributes with the values we are modifying via setattrs > > instead of trying to re-fetch the attributes? > > Handles don't have attributes stored in them anymore, just the cache in the > MDCACHE entry. So MDCACHE needs to update the attributes. I suppose > we could set them from the given attributes, but the FSAL has the right, I > believe, to not set all of them exactly? > > We could, however, just invalidate them, and let them be fetched on > demand. I tried that... The result is we fail SATT15 test case... Now maybe that isn't that critical, I dunno... What we really need is a proper change attribute (we will soon have one for FSAL_CEPH...). Frank --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
Re: [Nfs-ganesha-devel] md-cache (setattr2) optimization
On 08/29/2016 01:35 PM, Soumya Koduri wrote: > Hi Dan/Frank, > > I was looking at mdcache code a bit for performance optimizations > possible. I have a couple of queries. Please let me know your inputs - > > * In ex setattr2(), we have support for FSAL to update the attributes in > the obj handle. Can we make use of them and get away with getattrs() > post that in mdcache_setattr2()? Or better can we update just the > attributes with the values we are modifying via setattrs instead of > trying to re-fetch the attributes? Handles don't have attributes stored in them anymore, just the cache in the MDCACHE entry. So MDCACHE needs to update the attributes. I suppose we could set them from the given attributes, but the FSAL has the right, I believe, to not set all of them exactly? We could, however, just invalidate them, and let them be fetched on demand. > > I am planning to work on necessary changes. Please let me know if you > see any issues with it. > > * Also where do we invalidate/update parent directory(s)'s attributes > post successful unlink/rename operations? mdcache_unlink() invalidates the parent's attribute cache on success (line 1142), and mdcache_rename() does it at line 746. Daniel -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
[Nfs-ganesha-devel] md-cache (setattr2) optimization
Hi Dan/Frank, I was looking at mdcache code a bit for performance optimizations possible. I have a couple of queries. Please let me know your inputs - * In ex setattr2(), we have support for FSAL to update the attributes in the obj handle. Can we make use of them and get away with getattrs() post that in mdcache_setattr2()? Or better can we update just the attributes with the values we are modifying via setattrs instead of trying to re-fetch the attributes? I am planning to work on necessary changes. Please let me know if you see any issues with it. * Also where do we invalidate/update parent directory(s)'s attributes post successful unlink/rename operations? Thanks, Soumya -- ___ Nfs-ganesha-devel mailing list Nfs-ganesha-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel