On Wed 03 Mar 2021 22:50:44 GMT Shengjing Zhu wrote:
> On Wed, Mar 03, 2021 at 11:30:20AM +0100, Nicolas Schier wrote:
> > On Wed 03 Mar 2021 17:33:16 GMT Shengjing Zhu write:
> > > 
> > > On Wed, Mar 3, 2021 at 3:40 PM Nicolas Schier <nico...@fjasle.eu> wrote:
> > > > > [2]: 
> > > > > https://lore.kernel.org/linux-unionfs/CAJfpegsiuf8ib5cvVrr=zhz+xu7bmmtt2eyapseudmpcrbu...@mail.gmail.com/T/#t
> > > >
> > > > The overlay fs patchset [2] has been merged and with v5.10.13 (tested
> > > > on linux-image-5.10.0-3-arm64) the issue is no more reproducible for
> > > > me.  Might you want to re-check on your site?
> > > >
> > > 
> > > If I understand correctly, the upstream patch is merged into the v5.11 
> > > tree.
> > 
> > Sorry.  Yes, you're right.
> > 
> > > And I still can reproduce the error on the Debian v5.10 kernel.
> > 
> > That confuses me quite a bit.  I did it once again on an ext4 mount 
> > (still the 5.10.0-3-arm64 kernel):
> > 
> >   nsc@lillesand:/tmp$ cat 
> > /sys/module/overlay/parameters/permit_mounts_in_userns 
> >   Y
> >   nsc@lillesand:/tmp$ mkdir -p test/lower/a test/merged test/upper test/work
> >   nsc@lillesand:/tmp$ uname -a | tee test/lower/a/a
> >   Linux lillesand 5.10.0-3-arm64 #1 SMP Debian 5.10.13-1 (2021-02-06) 
> > aarch64 GNU/Linux
> >   nsc@lillesand:/tmp$ unshare -m -U -r
> >   root@lillesand:/tmp# mount -t overlay -o 
> > rw,lowerdir=/tmp/test/lower,upperdir=/tmp/test/upper,workdir=/tmp/test/work 
> > overlay /tmp/test/merged
> >   root@lillesand:/tmp# rm -rf test/merged/a
> >   root@lillesand:/tmp# find test -ls
> >     1597776      4 drwxr-xr-x   6 root     root         4096 mars  3 08:24 
> > test
> >     1973978      4 drwxr-xr-x   2 root     root         4096 mars  3 08:27 
> > test/upper
> >     2099881      0 c---------   1 root     root       0,   0 mars  3 08:27 
> > test/upper/a
> >     1973978      4 drwxr-xr-x   1 root     root         4096 mars  3 08:27 
> > test/merged
> >     1714388      4 drwxr-xr-x   3 root     root         4096 mars  3 08:24 
> > test/lower
> >     1714389      4 drwxr-xr-x   2 root     root         4096 mars  3 08:27 
> > test/lower/a
> >     1714393      4 -rw-r--r--   1 root     root           86 mars  3 10:48 
> > test/lower/a/a
> >     1973979      4 drwxr-xr-x   3 root     root         4096 mars  3 10:48 
> > test/work
> >     2099880      4 d---------   2 root     root         4096 mars  3 10:48 
> > test/work/work
> >   root@lillesand:/tmp# 
> > 
> zsj@debian:~$ cat /sys/module/overlay/parameters/permit_mounts_in_userns 
> Y
> zsj@debian:~/t$ mkdir -p test/lower/a test/merged test/upper test/work
> zsj@debian:~/t$ uname -a | tee test/lower/a/a
> Linux debian 5.10.0-3-amd64 #1 SMP Debian 5.10.13-1 (2021-02-06) x86_64 
> GNU/Linux
> zsj@debian:~/t$ unshare -m -U -r
> root@debian:~/t# mount -t overlay -o 
> rw,lowerdir=./test/lower,upperdir=./test/upper,workdir=./test/work overlay 
> ./test/merged/
> root@debian:~/t# rm -rf ./test/merged/a
> rm: cannot remove './test/merged/a': Input/output error
> root@debian:~/t# find test -ls
>   7350352      4 drwxr-xr-x   6 root     root         4096 Mar  3 22:44 test
>   7351341      4 drwxr-xr-x   3 root     root         4096 Mar  3 22:44 
> test/lower
>   7353492      4 drwxr-xr-x   2 root     root         4096 Mar  3 22:44 
> test/lower/a
>   7356441      4 -rw-r--r--   1 root     root           82 Mar  3 22:44 
> test/lower/a/a
>   7356069      4 drwxr-xr-x   3 root     root         4096 Mar  3 22:45 
> test/work
>   7358324      4 d---------   2 root     root         4096 Mar  3 22:45 
> test/work/work
>   7358564      0 c---------   2 root     root       0,   0 Mar  3 22:45 
> test/work/work/#4
>   7354400      4 drwxr-xr-x   3 root     root         4096 Mar  3 22:44 
> test/upper
>   7358563      4 drwxr-xr-x   2 root     root         4096 Mar  3 22:45 
> test/upper/a
>   7358564      0 c---------   2 root     root       0,   0 Mar  3 22:45 
> test/upper/a/a
>   7354400      4 drwxr-xr-x   1 root     root         4096 Mar  3 22:44 
> test/merged
>   7353492      4 drwxr-xr-x   1 root     root         4096 Mar  3 22:45 
> test/merged/a
> 
> > Do you see any kernel log message from overlay fs?  Might it depend on 
> > the underlying filesystem? Can you create a white-out char dev node 
> > manually?
> > 
> 
> [1215353.859717] Setting dangerous option permit_mounts_in_userns - tainting 
> kernel
> [1215353.859841] overlayfs: overlayfs: Allowing overlay mounts in user 
> namespaces bears security risks
> [1215425.416543] overlayfs: upper fs does not support xattr, falling back to 
> index=off and metacopy=off.
> 
> The underlying fs is ext4.
> 
> zsj@debian:~/t$ mount|grep nvme
> /dev/nvme0n1p2 on / type ext4 (rw,relatime,errors=remount-ro)
> /dev/nvme0n1p4 on /home type ext4 (rw,relatime)
> /dev/nvme0n1p1 on /boot/efi type vfat 
> (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
> 
> I don't know how to test "create a white-out char dev node manually".
> 
> Thanks

thanks for re-validation.  I can reproduce the issue exactly on amd64 
system, but not on arm64.  It's really strange, also enabling dynamic 
debug output does not reveal anything useful.  I guess it would be good 
to dig into the related kernel code to get some deeper understanding, I 
hope to get start examining a bit in the upcoming weekend.

Kind regards,
Nicolas


-- 
epost|xmpp: nico...@fjasle.eu          irc://oftc.net/nsc
↳ gpg: 18ed 52db e34f 860e e9fb  c82b 7d97 0932 55a0 ce7f
     -- frykten for herren er opphav til kunnskap --

Attachment: signature.asc
Description: PGP signature

Reply via email to