在 2010-05-07五的 01:25 -0700,Garrett Cooper写道:
> 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

I must correct my test result.The case is passed on condition that the
kernel is 2.6.27 version .The pass has nothing to with nfs or rootfs
located in the harddisk.Maybe the fails are caused by kernel
update(current version 2.6.34).

regards!

------------------------------------------------------------------------------

_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to