Bug 762158 (GLUSTER-426)

Summary: stat on mount point hangs.
Product: [Community] GlusterFS Reporter: Raghavendra G <raghavendra>
Component: stat-prefetchAssignee: Raghavendra G <raghavendra>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: mainlineCC: vijay
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Anand Avati 2009-12-02 15:29:33 UTC
PATCH: http://patches.gluster.com/patch/2498 in master (performance/stat-prefetch: get inode context from local->loc.inode instead of inode passed as arguement in sp_lookup_cbk.)

Comment 1 Anand Avati 2009-12-02 16:00:10 UTC
PATCH: http://patches.gluster.com/patch/2496 in release-2.0 (performance/stat-prefetch: get inode context from local->loc.inode instead of inode passed as arguement in sp_lookup_cbk.)

Comment 2 Raghavendra G 2009-12-02 17:47:08 UTC
with patch, http://patches.gluster.com/patch/2488/ ls on mount point hangs.

The setup consists of both protocol/client and protocol/server in the same volume spec file. The above mentioned patch adds even lookup to the waiting queue if one is already in progress. Since both client and server are in same volume spec file, the initial lookups on / might fail because server may not be up by the time client is up. Imagine two lookups issued one after another on / and the second lookup will be waiting on the first to complete. since first fails and inode is NULL, the second lookup is lost.

The fix is to store and access inode from local instead of using the one got as an argument in lookup_cbk.