Mr. Junjiro R. Okajima, Mr. Michael S. Zick,
thanks for your answers concerning the AUFS kernel messages.
Mr. Michael S. Zick,
thanks for your contributed code snip and your notes concerning
pam and gvfs. I put the wrapper code into my trick box.
Thanks again for your engagement.
Mr. Junjiro R. Okajima,
after your last letter I took a second glance at the script
journal-commit.
1. Kernel messages
The pivot element of the script is the shell function
handle-filesystems(). The function reads in a row of the file
/proc/mounts or /proc/self/mounts. On my system /proc/mounts is a
link that points at /proc/self/mounts. The function use the contents
of the field FSTYPE to create a function name with the prefix
handle_ and the suffix ${FSTYPE}. If the contents of the field
contains the string ext3, ext4 or aufs as example it creates the
function name handle_ext3, handle_ext4 or handle_aufs. Two of the
three function names have functions in the script journal-commit.
These are the shell functions handle_ext3() and handle_ext4().
The function command_exists() in the do while loop of the function
handle_filesystems() checks the existence of a function name with
the prefix handle_ and the suffix ${FSTYPE}. If the function is a
member of the script journal-commit the script continues the
execution with following line. If not the script reads in the next
line from /proc/mounts.
The consequence is, the script only calls the command mount, if it
has found one of the FSTYPE ext3 or ext4 in the file /proc/mounts.
The script does what it shall.
Please take a look at the file proc_self_mounts.log. The file is
located in the attached tape archive email-attachment-06.tar.gz.
For the following discussion keep in mind that I called the script
journal-commit in the chroot environment. If I call mount in that
environment to remount the ext3 file system with the option commit,
mount can't see mounts like /tmp/jailcache.ro.var. The command mount
sees only the mount /var. This concerns all the following rows from
the attached file proc_self_mounts.log:
/dev/disk/by-uuid/f71d3... /tmp/jailcache.ro.root ext3 ...
/dev/sda11 /tmp/jailcache.ro.var ext3 ...
/dev/sda9 /tmp/jailcache.ro.usr ext3 ...
/dev/sda10 /tmp/jailcache.ro.usrlocal ext3 ...
/dev/sda6 /tmp/jailcache.ro.home ext3 ...
/dev/sda12 /tmp/jailcache.ro.srv ext3 ...
The question is, why AUFS reacts during the remount of the ext3 file
system and produce the kernel message?
Maybe it could be a good idea to look again over the source code of
AUFS.
The following rows from proc_self_mounts.log doesn't produce a
kernel message:
/dev/disk/by-uuid/f71d3... / ext3 ...
/dev/sda6 /home ext3 ...
/dev/sda7 /opt ext3 ...
/dev/sda12 /srv ext3 ...
/dev/sda8 /tmp ext3 ...
/dev/sda9 /usr ext3 ...
/dev/sda10 /usr/local ext3 ...
/dev/sda /var ext3
Again, in my opinion, I can't blame the script journal-commit. The
script doesn't generate the kernel message.
Maybe the script shouldn't read the inputs from /proc/mounts but
from /proc/self/mountinfo. The file /proc/mounts shows all mounts of
the system. The file /proc/self/mountinfo shows a different view of
the mounts. As example have a look at the attached files proc_self_
mountinfo-in_aufs.log and proc_self_mountinfo-out_aufs.log. The
first file shows the mounts in the chroot environment and the second
file was taken outside the chroot environment.
The file proc_self_mountinfo-in_aufs.log shows only the unions and
no ext3 mounts. This could be a solution, but I don't know the side
effects. Sure, if this is a solution we must convinced the developer
of the pm-utils.
In my opinion, the kernel message isn't caused by the script journal-
commit. Again, the script does what it shall. The script remounts
only file systems with the type ext3 and ext4. That answers your
first suggestion.
It is surely a good idea to look after the reason why the kernel
displays the message. It seems that AUFS stumbled about something
during the remount procedure and the reason for that should be
known. I think, if you know the reason, you could forbid AUFS
the print of the message. That answers your second suggestion.
2. aubusy
- The test of the new aubusy version was successful. I used aubusy
from your git repository aufs3.0 downloaded at 2012-03-26.
A little star and all goes as it shall. Thanks
- Feature request concerning a list function for aubusy. Could I
convince you to provide a list function for aubusy. Something that
mount does if we invoke mount without any option. The pure mount
command shows all current mounts. The tool aubusy should show all
current union and their branches like the following example:
$> sudo aubusy
or
$> sudo aubusy -l
The output could be the following list:
union: /tmp/jail
br0: /tmp/jailcache.ro.root
br1: /tmp/jailcahce.rw.root
union: /tmp/jail/var
br0: /tmp/jailcache.ro.var
br1: /tmp/jailcache.rw.var
:::
This gives us a first and comprehensive overview. The list helps to
run aubusy with the correct union and branch options.
I would be very glad, if you could find some time to answer my
questions. Thanks a lot in advanced.
Regards,
Robert Wotzlaw
Attachment:
1. Tape archive email-attachment-06.tar.gz
- proc_self_mounts.log
- proc_self_mountinfo-in_aufs.log
- proc_self_mountinfo-out_aufs.log
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure