Menu

#20 inotify fdinfo don't contains f_handle for aufs files

v1.0_(example)
open
nobody
None
5
2014-11-13
2014-08-30
No

criu collects information about inotifies from /proc/PID/fdinfo/FD. One of our test fails on aufs, because fdinfo doesn't contains f_handle. Then I found a warning in a kernel log.

root@aufs:~/criu/test# cd ..
root@aufs:~/criu# mkdir xxx
root@aufs:~/criu# mount -t aufs -o br=test/ none xxx
root@aufs:~/criu# cd xxx/zdtm//live/static/

root@aufs:~/criu/xxx/zdtm/live/static# strace -fo log -s 256 make inotify00.pid &
[1] 1048
root@aufs:~/criu/xxx/zdtm/live/static# make[1]: Entering directory /root/criu/xxx/zdtm/lib' make[1]: Leaving directory/root/criu/xxx/zdtm/lib'
./inotify00 --pidfile=inotify00.pid --outfile=inotify00.out

root@aufs:~/criu/xxx/zdtm/live/static# ps -C inotify00
PID TTY TIME CMD
1075 ? 00:00:00 inotify00
root@aufs:~/criu/xxx/zdtm/live/static# dmesg -c > /dev/null
root@aufs:~/criu/xxx/zdtm/live/static# cat /proc/1075/fdinfo/3
pos: 0
flags: 04000
inotify wd:2 ino:115 sdev:18 mask:800afff ignored_mask:0
inotify wd:1 ino:2 sdev:fd00000 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:0200000000000000

root@aufs:~/criu/xxx/zdtm/live/static# dmesg
[ 119.950831] ------------[ cut here ]------------
[ 119.950864] WARNING: CPU: 0 PID: 1086 at /build/buildd/linux-3.13.0/fs/notify/fdinfo.c:54 show_mark_fhandle+0xfd/0x110()
[ 119.950867] Can't encode file handler for inotify: 255
[ 119.950869] Modules linked in: aufs ppdev kvm_intel kvm serio_raw parport_pc i2c_piix4 mac_hid lp parport psmouse floppy
[ 119.950892] CPU: 0 PID: 1086 Comm: cat Not tainted 3.13.0-32-generic #57-Ubuntu
[ 119.950894] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[ 119.950897] 0000000000000009 ffff880000187cd0 ffffffff8171bcb4 ffff880000187d18
[ 119.950906] ffff880000187d08 ffffffff810676cd 0000000000000000 0000000000000000
[ 119.950909] ffff88001f8de540 ffff88001f8de540 ffff88001f9a87c0 ffff880000187d68
[ 119.950913] Call Trace:
[ 119.950925] [<ffffffff8171bcb4>] dump_stack+0x45/0x56
[ 119.950938] [<ffffffff810676cd>] warn_slowpath_common+0x7d/0xa0
[ 119.950942] [<ffffffff8106773c>] warn_slowpath_fmt+0x4c/0x50
[ 119.950946] [<ffffffff8120073d>] show_mark_fhandle+0xfd/0x110
[ 119.950962] [<ffffffff811dffa3>] ? seq_printf+0x43/0x50
[ 119.950967] [<ffffffff812008cd>] inotify_fdinfo+0x7d/0xb0
[ 119.950971] [<ffffffff81200960>] inotify_show_fdinfo+0x60/0x90
[ 119.950976] [<ffffffff8122aa48>] seq_show+0x118/0x150
[ 119.950980] [<ffffffff811e0a5a>] seq_read+0x14a/0x390
[ 119.950986] [<ffffffff811bc9e5>] vfs_read+0x95/0x160
[ 119.950989] [<ffffffff811bd4f9>] SyS_read+0x49/0xa0
[ 119.950996] [<ffffffff8172c87f>] tracesys+0xe1/0xe6
[ 119.950998] ---[ end trace 79c1a96c328a0a2c ]---

strace output:
1075 inotify_init1(IN_NONBLOCK) = 3
1075 inotify_add_watch(3, "/", IN_ACCESS|IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_CLOSE_NOWRITE|IN_OPEN|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF) = 1
1075 open("inotify-removed", O_RDONLY|O_CREAT|O_TRUNC, 07777) = 4
1075 inotify_add_watch(3, "inotify-removed", IN_ACCESS|IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|IN_CLOSE_NOWRITE|IN_OPEN|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF) = 2
1075 unlink("inotify-removed") = 0

uname -a

Linux aufs 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

http://git.criu.org/?p=criu.git;a=blob;f=test/zdtm/live/static/inotify00.c;h=587408cda5bd3bb4e3da47a657ee1258635a1ccd;hb=HEAD

Discussion


Log in to post a comment.