[Gluster-devel] Problem with autofs configuration - sometimes mount does not complete fast enough?
Geoff Kassel
gkassel at users.sourceforge.net
Mon Sep 7 04:30:55 UTC 2009
Hi Mark,
This sounds a lot like the fast first access bug (Bug 220) that's been an
issue since at least 2.0.0rc1.
You might want to add your observations into the comments for this bug -
http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=220
(The devs seem to prefer handling bugs this way.)
Geoff.
On Mon, 7 Sep 2009, Mark Mielke wrote:
> On 09/06/2009 11:19 PM, Mark Mielke wrote:
> > On 09/06/2009 10:42 PM, Mark Mielke wrote:
> >> This seems to happen about 50% of the time:
> >>
> >> [root at wcarh035 ~]# ls /gluster/data
> >> ls: cannot open directory /gluster/data: No such file or directory
> >> [root at wcarh035 ~]# ls /gluster/data
> >> 00 06.fun 15 23.fun 32 40.fun 47 55.fun 64
> >> 00.fun 07 15.fun 24 32.fun 41 47.fun 56 64.fun
> >>
> >> My current guess is that GlusterFS is saying the mount is complete to
> >> AutoFS before the actual mount operation takes effect. 50% of the
> >> time GlusterFS is able to complete the mount before AutoFS let's the
> >> user continue, and all is well. The other 50% of the time, GlusterFS
> >> does not quite finish the mount, and AutoFS gives the user a broken
> >> directory.
> >>
> >> I might try and prove this by adding a sleep 5 to
> >> /sbin/mount.glusterfs, although I do not consider this a valid
> >> solution, as it just reduces the effect of the race - it does not
> >> eliminate the race.
> >
> > Uhh... Hmm... It already has a "sleep 3", and changing it to "sleep 5"
> > does not reduce the frequency of the problem. Changing it to "sleep
> > 10" also has no effect.
> >
> > Why does it sometimes work and sometimes not?
>
> I note that the fusermount from the FUSE libraries does not seem to have
> the same problem:
>
> $ /stage/linux/fuse-2.7.4/example/fusexmp_fh /tmp/t ; ls /tmp/t
> backup/ boot/ etc/ lib64/ media/ pccyber/ sbin/ stage/
> usr/
> backup2/ db/ home/ lost+found/ mnt/ proc/ selinux/ sys/
> var/
> bin/ dev/ lib/ mail/ opt/ root/ srv/ tmp/
> www/
>
> It works immediately. Compare this to:
>
> [root at wcarh033]~# echo hi >/tmp/t/hi
> [root at wcarh033]~# time /opt/glusterfs/sbin/glusterfs
> --volfile=/etc/glusterfs/gluster-data.vol /tmp/t ; ls /tmp/t ; sleep 1 ;
> ls /tmp/t
> /opt/glusterfs/sbin/glusterfs --volfile=/etc/glusterfs/gluster-data.vol
> /tmp/ 0.00s user 0.00s system 113% cpu 0.003 total
> hi
> 00 06.fun 15 23.fun 32 40.fun 47 55.fun 64
> 00.fun 07 15.fun 24 32.fun 41 47.fun 56 64.fun
> 01 07.fun 16 24.fun 33 41.fun 50 56.fun 65
> 01.fun 10 16.fun 25 33.fun 42 50.fun 57 65.fun
> 02 10.fun 17 25.fun 34 42.fun 51 57.fun 66
> 02.fun 11 17.fun 26 34.fun 43 51.fun 60 66.fun
> 03 11.fun 20 26.fun 35 43.fun 52 60.fun 67
> 03.fun 12 20.fun 27 35.fun 44 52.fun 61 67.fun
> 04 12.fun 21 27.fun 36 44.fun 53 61.fun lost+found
> 04.fun 13 21.fun 30 36.fun 45 53.fun 62
> 05 13.fun 22 30.fun 37 45.fun 54 62.fun
> 05.fun 14 22.fun 31 37.fun 46 54.fun 63
> 06 14.fun 23 31.fun 40 46.fun 55 63.fun
>
> Note that the first 'ls' returns 'hi', and a second later, 'ls' returns
> the glusterfs content.
>
> For fusexmp, it appears to complete the mount before it returns. For
> glusterfs, it seems to complete the mount a short time after it completes.
>
> I think this is where autofs is getting confused, and serving the handle
> to the directory to the client too early. It thinks glusterfs is done
> mounting, and gives the handle to the client, but this handle is broken
> and fails. Glusterfs completes the mount, and a short time later the
> lookups succeed. Adding 'sleep' in mount.glusterfs do not seem to be
> good enough - as 'sleep 1' and 'sleep 20' do not change the frequency.
> The existing 'sleep 3' in /sbin/mount.glusterfs should be completely
> unnecessary. Instead, we should figure out why GlusterFS cannot ensure
> the mount is in place before it returns?
>
> I'm worn out investigating for today - hopefully somebody can help me? :-)
>
> Cheers,
> mark
More information about the Gluster-devel
mailing list