On Sun, 2011-03-06 at 23:37 -0300, Leonardo Chiquitto wrote:
> On Wed, Dec 15, 2010 at 12:49 AM, Ian Kent <ra...@themaw.net> wrote:
> > On Fri, 2010-12-10 at 17:10 -0200, Leonardo Chiquitto wrote:
> >> Hello Ian and list,
> >>
> >> I'd like to forward a bug report we received on openSUSE's Bugzilla [1].
> >> Please consider the following setup to reproduce the problem:
> >>
> >> host:~ # grep automount /etc/nsswitch.conf
> >> automount:    files
> >>
> >> host:~ # cat /etc/auto.master
> >> /vol  /etc/auto.vol
> >>
> >> host:~ # cat /etc/auto.vol
> >> data1 -fstype=nfs,ro,rsize=8192,wsize=8192,intr,nolock,nosuid srv:/data1
> >> data2 -fstype=nfs,ro,rsize=8192,wsize=8192,intr,nolock,nosuid srv:/data2
> >> data3 -fstype=nfs,ro,rsize=8192,wsize=8192,intr,nolock,nosuid srv:/data3
> >>
> >> host:~ # cat /etc/sysconfig/autofs
> >> AUTOFS_OPTIONS=""
> >> LOCAL_OPTIONS=""
> >> APPEND_OPTIONS="yes"
> >> DEFAULT_MASTER_MAP_NAME="auto.master"
> >> DEFAULT_TIMEOUT=600
> >> DEFAULT_BROWSE_MODE="yes"
> >> DEFAULT_LOGGING="debug"
> >> USE_MISC_DEVICE="yes"
> >>
> >> host:~ # ls -F /vol
> >> data1/  data2/  data3/
> >>
> >> The problem depends on ghosting being enabled (ie, BROWSE_MODE=yes).
> >> When we try to access a non-existent key/entry, AutoFS will fail to mount
> >> it but will still create the mount point:
> >>
> >> host:~ # ls -d /vol/invalid; sleep 10; ls -d /vol/invalid
> >> ls: cannot access /vol/invalid: No such file or directory
> >> /vol/invalid
> >>
> >> host:~ # ls -F /vol
> >> data1/  data2/  data3/  invalid/
> >>
> >> The problem happens because lookup_ghost() iterates over all cached
> >> mapents and creates directories for each entry in the cache. Since
> >> the cache also stores entries for failed mounts (negative entries), it
> >> ends up creating directories for mount points that don't exist in the
> >> map.
> >
> > Yes, an obvious problem.
> >
> >>
> >> I tested the patch below and it resolves the problem for me, but I'm not
> >> sure if this is the best (or even the correct) way to fix the bug. I'd
> >> appreciate if you could review and comment.
> >
> > Yeah, at first I thought there were a few other cases.
> > There still might be so let me think about it further.
> 
> Hello Ian,
> 
> I bisected this problem today and discovered that it appeared after the
> following commit:
> 
> commit 08aafab4c1d0ab6227c80f8cd1086ae78556a370
> Author: Ian Kent <ra...@themaw.net>
> Date:   Thu Sep 9 11:10:47 2010 +0800
> 
>     autofs-5.0.5 - fix direct map not updating on reread
> 
>     If the map type is explicitly specified for a map the map isn't
>     properly updated when a re-read is requested. This is because
>     the map stale flag is incorrectly cleared after after the lookup
>     module reads the map instead of at the completion of the update
>     procedure. The map stale flag should only be cleared if the map
>     read fails for some reason, otherwise it is updated when the
>     refresh is completed.
> 
> Does this ring a bell? If not, I'll see if I can debug it further tomorrow.

Not really.
I'm still not sure your original patch deals with the problem fully.

Could you also have a look at and try (from kernel.org):
autofs-5.0.5-fix-prune-cache-valid-check.patch

Ian


_______________________________________________
autofs mailing list
autofs@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/autofs

Reply via email to