Bug 761987 (GLUSTER-255)

Summary: libglusterfsclient should wait till all the children of distribute are initialized before sending first lookup on '/'
Product: [Community] GlusterFS Reporter: Raghavendra G <raghavendra>
Component: libglusterfsclientAssignee: Raghavendra G <raghavendra>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: 2.0.6CC: gluster-bugs, 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 Raghavendra G 2009-09-10 11:04:03 UTC
As of now, libglusterfsclient waits till CHILD_UP event is received before sending a lookup on '/'. This lookup call is necessary to have the layout for '/' constructed in distribute. But distribute sends CHILD_UP event when the first child comes up. It does not wait till all the children are up. If a lookup is sent now, only partial layout of '/' corresponding to those children of distribute that were up during lookup call is constructed. This results in failure of operations for those files whose hash values falls in the range of hash values not constructed in the layout. The size of the time window during the operations fail is from the first lookup on '/' to the first revalidate on '/'. On revalidate the layout is reconstructed properly.

As of now, since there is no mechanism to detect whether all the children of distribute are up, as a temporary workaround glusterfs_init waits for 100 milliseconds before sending first lookup.

Comment 1 Anand Avati 2009-09-14 02:10:30 UTC
PATCH: http://patches.gluster.com/patch/1295 in master (libglusterfsclient: Wait for time ample enough for all the children of distribute to initialize before sending lookup on '/'.)

Comment 2 Anand Avati 2009-09-14 02:10:37 UTC
PATCH: http://patches.gluster.com/patch/1296 in release-2.0 (libglusterfsclient: Wait for time ample enough for all the children of distribute to initialize before sending lookup on '/'.)