On 09/04/14 14:43, Edward Tomasz Napierała wrote:
On 0904T0759, Hans Ottevanger wrote:
On 08/17/14 16:50, Edward Tomasz Napierała wrote:
On 0817T1244, Hans Ottevanger wrote:


[...]
Hi!

Great to see a real autofs finally coming to FreeBSD.

I already did some very cursory testing on a recent 11-CURRENT system
that I still happened to have and things with at least the /net map
look quite OK.

I could do some more extensive testing if I could use some of my
10-STABLE systems. I already checked that the patch applies cleanly
to a recent 10-STABLE (modulo a few offsets) and that both buildworld
and buildkernel succeed. Should I expect difficulties actually
running your autofs on 10-STABLE?

No, it should be fine.  Plan is to MFC this to 10 soon, btw.


Good to see that autofa has been MFC'd during my vacation 8-)

But I found a little problem...

When I try to access the NFS exported file-systems on an older test
machine (running 7.x, but that is not so relevant, it also happens
with other servers), with the following exports:

$ showmount -e soekris
Exports list on soekris:
/var                               192.168.0.0
/usr                               192.168.0.0
/home                              192.168.0.0
/                                  192.168.0.0

I get:

$ ls /net/soekris
COPYRIGHT       dist            libexec         proc            tmp
bin             entropy         lost+found      rescue          usr
boot            etc             media           root            var
compat          home            mnt             sbin
dev             lib

which is correct, but the next level fails:

$ ls -l  /net/soekris/usr
total 0

since /usr on soekris is definitely not empty.
Relevant output of mount :

...
map -hosts on /net (autofs)
soekris:/ on /net/soekris (nfs, nosuid, automounted)

This is on 10.1-PRERELEASE r270922. The kernel config is GENERIC
minus devices I do not have and AUTOFS added. Config files
(/etc/auto_master, et al) are default. Mounting manually does succeed
(in two steps, of course).

When trying this from Mac OS X (I am still on Snow Leopard)
automounting works as expected. I did not have the opportunity yet to
try a Linux box (also do not know whether autofs there has been eaten
by systemd already 8-)).

Do I miss something, or is this a bug?

It's a bug.  Or rather, a missing feature.  The problem here is that
the "/" export "shadows" the rest.  To handle this correctly, automountd(8)
would need to mount the "/" share, then mount autofs on "/usr" etc, and
then call it done.  This part is easy.  The problem is: how to expire
(automatically unmount) it?  Because of autofs mounts, the "/" share
will always be busy, and thus won't ever get automatically unmounted.
So, for now, we don't even try to handle this situation.

I'm not sure what would the best way to solve it.


Maybe the same way as Mac OS X does.

On my old MacMini (Snow Leopard) I get in a quiescent state, before automounting anything:

/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)

Immediately after "ls -l /net/soekris/usr":

/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
soekris:/ on /net/soekris (nfs, nodev, nosuid, automounted, nobrowse)
trigger on /net/soekris/usr (autofs, automounted, nobrowse)
trigger on /net/soekris/var (autofs, automounted, nobrowse)
trigger on /net/soekris/home (autofs, automounted, nobrowse)
soekris:/usr on /net/soekris/usr (nfs, nodev, nosuid, automounted, nobrowse)

Then, after more than 400 seconds:

/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
soekris:/ on /net/soekris (nfs, nodev, nosuid, automounted, nobrowse)
trigger on /net/soekris/usr (autofs, automounted, nobrowse)
trigger on /net/soekris/var (autofs, automounted, nobrowse)
trigger on /net/soekris/home (autofs, automounted, nobrowse)

and finally after 600 seconds we are back to:

/dev/disk0s2 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)

So triggers for the subdirectories are automounted on their automounted parent directory and expiration occurs in steps. BTW, I reconfigured the automount timeout as 300s (was 3600s) so I do not fully understand why the first time takes at least 400s.

If you think it is useful I can grab an older Linux box from my basement and try to get autofs running on it, to do the same experiment. I currently do not have a Solaris installation.

Kind regards,

Hans

_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to