jon bird:
> That would be useful yes. I should be picking up actively looking at
> this again from Monday, I'll also be able to provide some more debug as
> well.

Here you are (attached).

Please note that
- my environment is aufs4.14 on debian 10 buster.
- you will need to some modification to apply it to aufs3.16.
- we may meet another problem if you run aufs with selinux.
- it passed just a small part of my local tests, which I generally make
  it pass entirely in every release without selinux.

For example, one of my test script compares a file before and after the
internal copyup.
- run stat(1) to a file on the lower RO branch, and store the output to "outA".
- do something which causes the internal copyup.
- run stat(1) to a file on the upper RW branch, and store the output to "outB".
- diff outA outB

The result should be identical except some timestamps and I/O block
size.  But when selinux is enabled, another stat-value got changed,
"Blocks" field (the consumed number of blocks for that file).

This is because of the difference between the filesystems of RO and RW.
How to store xattr and how to react stat(2) depend upon the branch
filesystem. And they may differ from each other.  When the lower RO
branch is ext2 and the upper RW branch is tmpfs, even if the size of
file is 0, stat(1) reports Blocks=2 on ext2, and Blocks=0 on tmpfs.
So "diff outA outB" reports "Something is wrong!!", and the test stops.


J. R. Okajima

Attachment: a.patch.bz2
Description: BZip2 compressed data



Reply via email to