Re: autofs multi-map regression

From: Eric W. Biederman
Date: Fri Jun 16 2017 - 17:05:07 EST


Dick Streefland <dick@xxxxxxxxxxxxxx> writes:

> After a recent upgrade of a Ubuntu xenial machine, a particular
> autofs multi-map mount setup stopped working. A simplified example is:
>
> ::::::::::::::
> auto.master
> ::::::::::::::
> /net /etc/auto.net
> ::::::::::::::
> auto.net
> ::::::::::::::
> localhost / :/ /loc :/loc
>
> Accessing /net/localhost/loc should trigger two nested bind mounts on
> /net/localhost and /net/localhost/loc, but with the new kernel, it fails
> with ELOOP:
>
> $ ls /net/localhost/loc
> ls: cannot open directory '/net/localhost/loc': Too many levels of symbolic links
>
> The problem is related to the upgrade of the Ubuntu xenial kernel from
> 4.4.0-38.57 to 4.4.0-78.99. I bisected the regression to commit
> 731ac92843877f3633325203abc942193c1e9001, which is a Ubuntu backport
> of this upstream kernel commit:
>
> commit 1064f874abc0d05eeed8993815f584d847b72486
> Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
> Date: Fri Jan 20 18:28:35 2017 +1300
>
> mnt: Tuck mounts under others instead of creating shadow/side mounts.


I don't believe this is a kernel change.

I dug up an old VM and I was able to reproduce this issue simply
by installing autofs, and your auto.master and auto.net files.

# uname -a
Linux ubuntu-16 4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:27:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

# ls /net/
localhost
# ls /net/localhost/loc
ls: cannot open directory '/net/localhost/loc': Too many levels of symbolic links
# ls /loc
ls: cannot open directory '/loc/': Too many levels of symbolic links

I suspect there is configuration somewhere in your autofs
configuration. I don't speak autofs well enough to debug the issue at
this point. But I can conclusively say it was not the kernel commit you
pointed at, as I see the issue you are reporting and I don't have that
commit in the kernel under test.

Eric