On Fri, May 7, 2010 at 1:25 AM, Henry xu <[email protected]> wrote:
> 在 2010-05-07五的 00:05 -0700,Garrett Cooper写道:
>> On Thu, May 6, 2010 at 11:02 PM, Henry xu <[email protected]> wrote:
>> > 在 2010-05-06四的 10:40 -0700,Garrett Cooper写道:
>> >> On Thu, May 6, 2010 at 2:14 AM, Henry xu <[email protected]> wrote:
>> >> > Hi,all
>> >> >
>> >> > I test inotify03 in ppc platform and product two fails as
>> >> > below.
>> >> > <<<test_start>>>
>> >> > tag=inotify03 stime=1272626381
>> >> > cmdline="inotify03 -D /dev/loop0 -T ext3"
>> >> > contacts=""
>> >> > analysis=exit
>> >> > <<<test_output>>>
>> >> > inotify03 0 TINFO : mount /dev/loop0 to mnt_18067 fstype=ext3
>> >> > inotify03 0 TINFO : umount /dev/loop0
>> >> > inotify03 1 TFAIL : get event: wd=1 mask=8000 (expected 2000)
>> >> > cookie=0 len=0
>> >> > inotify03 2 TFAIL : don't get event: mask=8000
>> >> > inotify03 3 TPASS : inotify_rm_watch (5, 1) return -1 errno=22 :
>> >> > Invalid argument
>> >> >
>> >> >
>> >> > when I type "./runltp -s inotify" for inotify test, the inotify03 test
>> >> > is not been executed.The information is as below.
>> >> >
>> >> > I look into the code ,however I could not get why mask is equal to
>> >> > 8000.Could someone give your comments on this case?
>> >> >
>> >> > thanks in advance!
>> >> >
>> >> > ================================================================
>> >> > You can specify it with option -b
>> >> > COMMAND: /opt/ltp-full/bin/ltp-pan -e -S -a 26692 -n 26692 -p
>> >> > -f /tmp/ltp-rUQUk26698/alltests
>> >> > -l /opt/ltp-full/results/LTP_RUN_ON-1970_Jan_02-02h_51m_52s.log
>> >> > -C /opt/ltp-full/output/LTP_RUN_ON-1970_Jan_02-02h_51m_52s.failed
>> >> > INFO: Restricted to inotify
>> >> > LOG File: /opt/ltp-full/results/LTP_RUN_ON-1970_Jan_02-02h_51m_52s.log
>> >> > FAILED COMMAND
>> >> > File: /opt/ltp-full/output/LTP_RUN_ON-1970_Jan_02-02h_51m_52s.failed
>> >> > Running tests.......
>> >> > <<<test_start>>>
>> >> > tag=inotify_init1_01 stime=96713
>> >> > cmdline="inotify_init1_01"
>> >> > contacts=""
>> >> > analysis=exit
>> >> > <<<test_output>>>
>> >> > inotify_init1_01 1 TPASS : inotify_init1(O_CLOEXEC) PASSED
>> >> > <<<execution_status>>>
>> >> > initiation_status="ok"
>> >> > duration=1 termination_type=exited termination_id=0 corefile=no
>> >> > cutime=0 cstime=0
>> >> > <<<test_end>>>
>> >> > <<<test_start>>>
>> >> > tag=inotify_init1_02 stime=96714
>> >> > cmdline="inotify_init1_02"
>> >> > contacts=""
>> >> > analysis=exit
>> >> > <<<test_output>>>
>> >> > inotify_init1_02 1 TPASS : inotify_init1(IN_NONBLOCK) PASSED
>> >> > <<<execution_status>>>
>> >> > initiation_status="ok"
>> >> > duration=0 termination_type=exited termination_id=0 corefile=no
>> >> > cutime=0 cstime=0
>> >> > <<<test_end>>>
>> >> > <<<test_start>>>
>> >> > tag=inotify01 stime=96714
>> >> > cmdline="inotify01"
>> >> > contacts=""
>> >> > analysis=exit
>> >> > <<<test_output>>>
>> >> > inotify01 1 TPASS : get event: wd=1 mask=4 cookie=0 len=0
>> >> > inotify01 2 TPASS : get event: wd=1 mask=20 cookie=0 len=0
>> >> > inotify01 3 TPASS : get event: wd=1 mask=1 cookie=0 len=0
>> >> > inotify01 4 TPASS : get event: wd=1 mask=10 cookie=0 len=0
>> >> > inotify01 5 TPASS : get event: wd=1 mask=20 cookie=0 len=0
>> >> > inotify01 6 TPASS : get event: wd=1 mask=2 cookie=0 len=0
>> >> > inotify01 7 TPASS : get event: wd=1 mask=8 cookie=0 len=0
>> >> > <<<execution_status>>>
>> >> > initiation_status="ok"
>> >> > duration=0 termination_type=exited termination_id=0 corefile=no
>> >> > cutime=0 cstime=0
>> >> > <<<test_end>>>
>> >> > <<<test_start>>>
>> >> > tag=inotify02 stime=96714
>> >> > cmdline="inotify02"
>> >> > contacts=""
>> >> > analysis=exit
>> >> > <<<test_output>>>
>> >> > inotify02 1 TPASS : get event: wd=1 mask=40000004 cookie=0 len=0
>> >> > name=""
>> >> > inotify02 2 TPASS : get event: wd=1 mask=100 cookie=0 len=16
>> >> > name="test_file1"
>> >> > inotify02 3 TPASS : get event: wd=1 mask=20 cookie=0 len=16
>> >> > name="test_file1"
>> >> > inotify02 4 TPASS : get event: wd=1 mask=8 cookie=0 len=16
>> >> > name="test_file1"
>> >> > inotify02 5 TPASS : get event: wd=1 mask=40 cookie=4553 len=16
>> >> > name="test_file1"
>> >> > inotify02 6 TPASS : get event: wd=1 mask=80 cookie=4553 len=16
>> >> > name="test_file2"
>> >> > inotify02 7 TPASS : get event: wd=1 mask=800 cookie=0 len=0
>> >> > name=""
>> >> > inotify02 8 TPASS : get event: wd=1 mask=200 cookie=0 len=16
>> >> > name="test_file2"
>> >> > inotify02 9 TPASS : get event: wd=1 mask=800 cookie=0 len=0
>> >> > name=""
>> >> > incrementing stop
>> >> > <<<execution_status>>>
>> >> > initiation_status="ok"
>> >> > duration=0 termination_type=exited termination_id=0 corefile=no
>> >> > cutime=0 cstime=0
>> >> > <<<test_end>>>
>> >> > INFO: ltp-pan reported all tests PASS
>> >> > LTP Version: LTP-20100228
>> >>
>> >> I saw this failure as well on powerpc with 2.6.24 when I was
>> >> running LTP on a regular basis. I never looked into why it was an
>> >> issue either.
>> >> Thanks,
>> >> -Garrett
>> >
>> > I use "strace tool" for the case test,the information is as blow.
>> >
>> > r...@sbc8560:/opt/ltp-full> strace ./testcases/bin/inotify03
>> > -D /dev/loop0 -T ext3
>> > execve("./testcases/bin/inotify03", ["./testcases/bin/inotify03", "-D",
>> > "/dev/loop0", "-T", "ext3"], [/* 13 vars */]) = 0
>> > brk(0) = 0x10026000
>> > access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or
>> > directory)
>> > open("/etc/ld.so.cache", O_RDONLY) = -1 ENOENT (No such file or
>> > directory)
>> > open("/lib/tls/ppc8540/libc.so.6", O_RDONLY) = -1 ENOENT (No such file
>> > or directory)
>> > stat64("/lib/tls/ppc8540", 0xbf952008) = -1 ENOENT (No such file or
>> > directory)
>> > open("/lib/tls/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
>> > directory)
>> > stat64("/lib/tls", 0xbf952008) = -1 ENOENT (No such file or
>> > directory)
>> > open("/lib/ppc8540/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or
>> > directory)
>> > stat64("/lib/ppc8540", 0xbf952008) = -1 ENOENT (No such file or
>> > directory)
>> > open("/lib/libc.so.6", O_RDONLY) = 3
>> > read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\17\345\354\314
>> > \0\0\0004"..., 512) = 512
>> > fstat64(3, {st_mode=S_IFREG|0755, st_size=1449652, ...}) = 0
>> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
>> > = 0x48000000
>> > mmap(0xfe40000, 1516168, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE,
>> > 3, 0) = 0xfe40000
>> > mprotect(0xff9b000, 65536, PROT_NONE) = 0
>> > mmap(0xffab000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|
>> > MAP_DENYWRITE, 3, 0x15b000) = 0xffab000
>> > mmap(0xffb0000, 8840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|
>> > MAP_ANONYMOUS, -1, 0) = 0xffb0000
>> > close(3) = 0
>> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
>> > = 0x48001000
>> > mprotect(0xffab000, 16384, PROT_READ) = 0
>> > mprotect(0xffee000, 4096, PROT_READ) = 0
>> > brk(0) = 0x10026000
>> > brk(0x10047000) = 0x10047000
>> > rt_sigaction(SIGHUP, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGINT, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGQUIT, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGILL, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGTRAP, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGABRT, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGBUS, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGFPE, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGUSR1, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGSEGV, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGUSR2, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGPIPE, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGALRM, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGTERM, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGSTKFLT, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0},
>> > 8) = 0
>> > rt_sigaction(SIGCHLD, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGTSTP, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGTTIN, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGTTOU, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGURG, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGXCPU, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGXFSZ, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGVTALRM, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0},
>> > 8) = 0
>> > rt_sigaction(SIGPROF, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGWINCH, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0},
>> > 8) = 0
>> > rt_sigaction(SIGIO, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8) =
>> > 0
>> > rt_sigaction(SIGPWR, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGSYS, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0}, 8)
>> > = 0
>> > rt_sigaction(SIGRT_16, {0x10004224, [], SA_RESTART}, {SIG_DFL, [], 0},
>> > 8) = 0
>> > getpid() = 27426
>> > mkdir("/tmp/inoU3Ze0T", 0700) = 0
>> > getgid() = 0
>> > chown("/tmp/inoU3Ze0T", -1, 0) = 0
>> > chmod("/tmp/inoU3Ze0T", 0777) = 0
>> > chdir("/tmp/inoU3Ze0T") = 0
>> > mkdir("mnt_27426", 0750) = 0
>> > fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(5, 1), ...}) = 0
>> > ioctl(1, TCGETS, {B9600 opost isig icanon echo ...}) = 0
>> > mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
>> > = 0x48002000
>> > write(1, "inotify03 0 INFO : mount /"..., 67inotify03 0
>> > INFO : mount /dev/loop0 to mnt_27426 fstype=ext3
>> > ) = 67
>> > mount("/dev/loop0", "mnt_27426", "ext3", 0, NULL) = 0
>> > open("mnt_27426/tfile_27426", O_RDWR|O_CREAT, 0700) = 3
>> > write(3, "m", 1) = 1
>> > close(3) = 0
>> > inotify_init() = 3
>> > inotify_add_watch(3, "mnt_27426/tfile_27426", 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
>> > write(1, "inotify03 0 INFO : umount "..., 43inotify03 0
>> > INFO : umount /dev/loop0
>> > ) = 43
>> > oldumount("mnt_27426") = 0
>> > read(3, "\0\0\0\1\0\0\200\0\0\0\0\0\0\0\0\0", 32768) = 16
>> > write(1, "inotify03 1 FAIL : get eve"..., 82inotify03 1
>> > FAIL : get event: wd=1 mask=8000 (expected 2000) cookie=0 len=0
>> > ) = 82
>>
>> This is the root cause for the failure. 0x2000 corresponds to:
>>
>> #define IN_UNMOUNT 0x00002000 /* Backing fs was unmounted */
>>
>> So, it's a potential kernel bug. Make sure that IN_UNMOUNT is properly
>> set at all levels between your copy of glibc and the kernel.
>
> When I test this case in rootfs located on the harddisk,the case is
> passed.Obviously the fails caused by nfs .
>
> thanks for your good comments!
This is a definite limitation of inotify(7) as it can only
properly watch changes on local filesystems that can't be avoided
then. Interesting to note...
Thanks -- that helped solve my mystery too :),
-Garrett
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list