I have similar problem, and I hope that it is the same cause.
   I created a test script that reproduces my problem.
   ----
   #!/bin/bash
   set -u
   set -e
   MERGE=${PWD}/merge
   LAYER01=${PWD}/layer01
   LAYER02=${PWD}/layer02
   LAYER03=${PWD}/layer03
   LAYER04=${PWD}/layer04
   mountpoint ${PWD}/merge >/dev/null && umount ${PWD}/merge
   for i in layer0{1..4} merge; do
   Â  rm -rf ${PWD}/${i}
   Â  mkdir -p ${PWD}/${i}
   done
   # layer01 / mkdir
   mkdir -vp ${LAYER01}/bar
   # layer02 / rmdir
   mount -t aufs -o br:${LAYER02}=rw:${LAYER01}=ro+wh none ${MERGE}
   rm -vrf ${MERGE}/bar
   umount ${MERGE}
   tree -a ${PWD}/layer* ${MERGE}
   # layer03 / mkdir
   mount -t aufs -o br:${LAYER03}=rw:${LAYER02}=ro+wh:${LAYER01}=ro+wh none
   ${MERGE}
   mkdir -vp ${MERGE}/bar
   umount ${MERGE}
   tree -a ${PWD}/layer* ${MERGE}
   # layer04 / touch and rmdir
   mount -t aufs -o
   br:${LAYER04}=rw:${LAYER03}=ro+wh:${LAYER02}=ro+wh:${LAYER01}=ro+whnone
   ${MERGE}
   ls -la ${MERGE}
   touch ${MERGE}/bar
   ls -la ${MERGE}
   rm -vrf ${MERGE}/bar
   # deleted ${MARGE}/bar. But exists.
   ls -la ${MERGE}
   ----
   I checked with folloing kernels.
   Â - debian kernel(3.16.0.4) + aufs package
   Â - vanilla(4.2.1)+patch(aufs-4.2-20150928[standalone]) .
   The other information is listed in the following.
   I want to solve this problem.
   You tell me if that there is information required for the other .
   ----
   debian-jessie:~/aufs-test# cat /proc/mounts
   sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
   proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
   udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=61036,mode=755 0 0
   devpts/dev/ptsdevptsrw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
   0 0
   tmpfs /run tmpfs rw,nosuid,relatime,size=101112k,mode=755 0 0
   /dev/sda1 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
   securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0
   0
   tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
   tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
   tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
   cgroup /sys/fs/cgroup/systemd cgroup
   rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgr
   oups-agent,name=systemd 0 0
   pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
   cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0
   0
   cgroup /sys/fs/cgroup/cpu,cpuacct cgroup
   rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
   cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
   cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0
   0
   cgroup/sys/fs/cgroup/devicescgrouprw,nosuid,nodev,noexec,relatime,devices
   0 0
   cgroup/sys/fs/cgroup/freezercgrouprw,nosuid,nodev,noexec,relatime,freezer
   0 0
   cgroup              /sys/fs/cgroup/net_cls,net_prio             cgroup
   rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
   cgroup /sys/fs/cgroup/perf_event cgroup
   rw,nosuid,nodev,noexec,relatime,perf_event 0 0
   cgroup/sys/fs/cgroup/hugetlbcgrouprw,nosuid,nodev,noexec,relatime,hugetlb
   0 0
   systemd-1 /proc/sys/fs/binfmt_misc autofs
   rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
   hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
   debugfs /sys/kernel/debug debugfs rw,relatime 0 0
   mqueue /dev/mqueue mqueue rw,relatime 0 0
   rpc_pipefs /run/rpc_pipefs rpc_pipefs rw,relatime 0 0
   none /root/aufs-test/merge aufs rw,relatime,si=281b3cc259ea3b9 0 0
   debian-jessie:~/aufs-test# find /sys/module/aufs/ -type f | xargs head
   ==> /sys/module/aufs/parameters/brs <==
   1
   ==> /sys/module/aufs/parameters/debug <==
   0
   ==> /sys/module/aufs/parameters/sysrq <==
   a
   ==> /sys/module/aufs/parameters/allow_userns <==
   N
   ==> /sys/module/aufs/version <==
   4.2-20150928
   head: cannot open â/sys/module/aufs/ueventâ for reading: Permission denied
   debian-jessie:~/aufs-test# cat /proc/mounts
   sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
   proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
   udev /dev devtmpfs rw,relatime,size=10240k,nr_inodes=61036,mode=755 0 0
   devpts/dev/ptsdevptsrw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
   0 0
   tmpfs /run tmpfs rw,nosuid,relatime,size=101112k,mode=755 0 0
   /dev/sda1 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
   securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0
   0
   tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
   tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
   tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
   cgroup /sys/fs/cgroup/systemd cgroup
   rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgr
   oups-agent,name=systemd 0 0
   pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
   cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0
   0
   cgroup /sys/fs/cgroup/cpu,cpuacct cgroup
   rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
   cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
   cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0
   0
   cgroup/sys/fs/cgroup/devicescgrouprw,nosuid,nodev,noexec,relatime,devices
   0 0
   cgroup/sys/fs/cgroup/freezercgrouprw,nosuid,nodev,noexec,relatime,freezer
   0 0
   cgroup              /sys/fs/cgroup/net_cls,net_prio             cgroup
   rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
   cgroup /sys/fs/cgroup/perf_event cgroup
   rw,nosuid,nodev,noexec,relatime,perf_event 0 0
   cgroup/sys/fs/cgroup/hugetlbcgrouprw,nosuid,nodev,noexec,relatime,hugetlb
   0 0
   systemd-1 /proc/sys/fs/binfmt_misc autofs
   rw,relatime,fd=22,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
   hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
   debugfs /sys/kernel/debug debugfs rw,relatime 0 0
   mqueue /dev/mqueue mqueue rw,relatime 0 0
   rpc_pipefs /run/rpc_pipefs rpc_pipefs rw,relatime 0 0
   none /root/aufs-test/merge aufs rw,relatime,si=281b3cc259ea3b9 0 0
   debian-jessie:~/aufs-test# find /sys/module/aufs/ -type f | xargs head
   ==> /sys/module/aufs/parameters/brs <==
   1
   ==> /sys/module/aufs/parameters/debug <==
   0
   ==> /sys/module/aufs/parameters/sysrq <==
   a
   ==> /sys/module/aufs/parameters/allow_userns <==
   N
   ==> /sys/module/aufs/version <==
   4.2-20150928
   head: cannot open â/sys/module/aufs/ueventâ for reading: Permission denied
   debian-jessie:~/aufs-test# find /sys/fs/aufs/ -type f | xargs head
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/br0 <==
   /root/aufs-test/layer04=rw
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/br1 <==
   /root/aufs-test/layer03=ro+wh
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/br2 <==
   /root/aufs-test/layer02=ro+wh
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/br3 <==
   /root/aufs-test/layer01=ro+wh
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/xi_path <==
   /root/aufs-test/layer04/.aufs.xino
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/brid0 <==
   512
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/brid1 <==
   513
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/brid2 <==
   514
   ==> /sys/fs/aufs/si_281b3cc259ea3b9/brid3 <==
   515
   debian-jessie:~/aufs-test# uname -a
   Linux debian-jessie 4.2.1-2-aufs #1 SMP Mon Sep 28 22:01:19 JST 2015 x86_64
   GNU/Linux
   debian-jessie:~/aufs-test# zgrep CONFIG_AUFS /proc/config.gz
   CONFIG_AUFS_FS=y
   # CONFIG_AUFS_BRANCH_MAX_127 is not set
   # CONFIG_AUFS_BRANCH_MAX_511 is not set
   CONFIG_AUFS_BRANCH_MAX_1023=y
   # CONFIG_AUFS_BRANCH_MAX_32767 is not set
   CONFIG_AUFS_SBILIST=y
   CONFIG_AUFS_HNOTIFY=y
   CONFIG_AUFS_HFSNOTIFY=y
   CONFIG_AUFS_EXPORT=y
   CONFIG_AUFS_INO_T_64=y
   CONFIG_AUFS_XATTR=y
   CONFIG_AUFS_FHSM=y
   CONFIG_AUFS_RDU=y
   CONFIG_AUFS_SHWH=y
   CONFIG_AUFS_BR_RAMFS=y
   CONFIG_AUFS_BR_FUSE=y
   CONFIG_AUFS_POLL=y
   CONFIG_AUFS_BR_HFSPLUS=y
   CONFIG_AUFS_BDEV_LOOP=y
   CONFIG_AUFS_DEBUG=y
   CONFIG_AUFS_MAGIC_SYSRQ=y
   ----
   debug_log
   ----
   rm -vrf ${MERGE}/bar
   kernel: aufs h_d_revalidate:853:rm[1086]: DEBUG: b0, bar
   kernel: aufs h_d_revalidate:853:rm[1086]: DEBUG: b1, bar
   kernel: aufs h_d_revalidate:853:rm[1086]: DEBUG: b0, bar
   kernel: aufs h_d_revalidate:853:rm[1086]: DEBUG: b1, bar
   kernel: aufs aufs_iterate:473:rm[1086]: DEBUG: bar, ctx{filldir, 0}
   kernel: aufs vfsub_iterate_dir:543:rm[1086]: DEBUG: bar, ctx{fillvdir, 0}
   kernel: aufs vfsub_iterate_dir:543:rm[1086]: DEBUG: bar, ctx{fillvdir,
   9223372036854775807}
   kernel: aufs vfsub_iterate_dir:543:rm[1086]: DEBUG: bar, ctx{fillvdir,
   9223372036854775807}
   kernel: aufs test_known:223:rm[1086]: DEBUG: ..
   kernel: aufs test_known:223:rm[1086]: DEBUG: .
   kernel: aufs vfsub_iterate_dir:543:rm[1086]: DEBUG: bar, ctx{fillvdir,
   9223372036854775807}
   kernel: aufs seek_vdir:801:rm[1086]: DEBUG: offset 0
   kernel: aufs au_vdir_fill_de:863:rm[1086]: DEBUG: .., off0, i2, dt4
   kernel: aufs au_vdir_fill_de:863:rm[1086]: DEBUG: ., off16, i12, dt4
   kernel: aufs aufs_iterate:473:rm[1086]: DEBUG: bar, ctx{filldir, 32}
   kernel: aufs seek_vdir:801:rm[1086]: DEBUG: offset 32
   kernel: aufs h_d_revalidate:853:rm[1086]: DEBUG: b0, bar
   kernel: aufs h_d_revalidate:853:rm[1086]: DEBUG: b1, bar
   kernel: aufs vfsub_iterate_dir:543:rm[1086]: DEBUG: bar, ctx{test_empty_cb,
   0}
   kernel: aufs vfsub_iterate_dir:543:rm[1086]: DEBUG: bar, ctx{test_empty_cb,
   9223372036854775807}
   kernel: aufs vfsub_iterate_dir:543:rm[1086]: DEBUG: bar, ctx{test_empty_cb,
   9223372036854775807}
   kernel: aufs vfsub_iterate_dir:543:rm[1086]: DEBUG: bar, ctx{test_empty_cb,
   9223372036854775807}
   kernel: aufs au_wr_dir_need_wh:53:rm[1086]: DEBUG: bcpup 0, bstart 0
   kernel: aufs au_wr_dir_need_wh:76:rm[1086]: DEBUG: need_wh 0
   ----
   2015å¹´10æ6æ¥(ç«) 10:18 <[1]sf...@users.sourceforge.net>:

     Hello Karl,
     Karl Semich:
     > - 3 layers of +wh under the rw layer on top
     > - Bottom layer has folder A with files inside it
     > - Second-to-bottom layer has a whiteout deleting folder A on bottom
     layer
     > - Second-to-top layer has folder A recreated with files inside it
     > - Go into rw top mount, remove all files from A.  Works fine.
     > - Rmdir A.  Immediately reappears containing the files again.
     Let me make sure.
     - /u = /rwTOP + /ro+whONE + /ro+whMID + /ro+whBOT
     - /ro+whBOT/dirA exists with its children
     - /ro+whMID/.wh.dirA exists
     - /ro+whONE/dirA exists with its children
     - both of /rwTOP/dirA and /rwTOP/.wh.dirA don't exist
     Right?
     Here trying 'rmdir /u/dirA' should fail with ENOTEMPTY.
     Or do you mean
     - both of /rwTOP/dirA and /rwTOP/.wh.dirA don't exist
     is wrong and
     - /rwTOP/dirA exists with its children
     - by-passing aufs 'rm /rwTOP/dirA/*' executed
     is correct?
     If so, did you try 'udba=notify'?
     Next time when you post, please provide these info.
     (from aufs README file)
     ----------------------------------------------------------------------
     When you have any problems or strange behaviour in aufs, please let me
     know with:
     - /proc/mounts (instead of the output of mount(8))
     - /sys/module/aufs/*
     - /sys/fs/aufs/* (if you have them)
     - /debug/aufs/* (if you have them)
     - linux kernel version
     Â  if your kernel is not plain, for example modified by distributor,
     Â  the url where i can download its source is necessary too.
     - aufs version which was printed at loading the module or booting the
     Â  system, instead of the date you downloaded.
     - configuration (define/undefine CONFIG_AUFS_xxx)
     - kernel configuration or /proc/config.gz (if you have it)
     - behaviour which you think to be incorrect
     - actual operation, reproducible one is better
     - mailto: aufs-users at [2]lists.sourceforge.net
     ----------------------------------------------------------------------
     J. R. Okajima
     --------------------------------------------------------------------------
     ----

References

   1. mailto:sf...@users.sourceforge.net
   2. http://lists.sourceforge.net/
------------------------------------------------------------------------------

Reply via email to