在 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!
>
> > write(1, "inotify03 2 FAIL : don't g"..., 53inotify03 2
> > FAIL : don't get event: mask=8000
> > ) = 53
> > inotify_rm_watch(3, 1) = -1 EINVAL (Invalid argument)
>
> This is a symptom, not the root cause.
>
> > write(1, "inotify03 3 PASS : inotify"..., 87inotify03 3
> > PASS : inotify_rm_watch (3, 1) return -1 errno=22 : Invalid argument
> > ) = 87
> > close(3) = 0
> > chdir("/tmp") = 0
> > lstat64("/tmp/inoU3Ze0T", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
> > open("/tmp/inoU3Ze0T", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|
> > O_CLOEXEC) = 3
> > fstat64(3, {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
> > fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC)
> > getdents(3, /* 3 entries */, 4096) = 56
> > lstat64("/tmp/inoU3Ze0T/mnt_27426", {st_mode=S_IFDIR|0750,
> > st_size=4096, ...}) = 0
> > open("/tmp/inoU3Ze0T/mnt_27426", O_RDONLY|O_NONBLOCK|O_LARGEFILE|
> > O_DIRECTORY|O_CLOEXEC) = 4
> > fstat64(4, {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0
> > getdents(4, /* 2 entries */, 4096) = 32
> > getdents(4, /* 0 entries */, 4096) = 0
> > close(4) = 0
> > lstat64("/tmp/inoU3Ze0T/mnt_27426", {st_mode=S_IFDIR|0750,
> > st_size=4096, ...}) = 0
> > unlink("/tmp/inoU3Ze0T/mnt_27426") = -1 EISDIR (Is a directory)
> > rmdir("/tmp/inoU3Ze0T/mnt_27426") = 0
> > getdents(3, /* 0 entries */, 4096) = 0
> > close(3) = 0
> > lstat64("/tmp/inoU3Ze0T", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
> > unlink("/tmp/inoU3Ze0T") = -1 EISDIR (Is a directory)
> > rmdir("/tmp/inoU3Ze0T") = 0
> > exit_group(1) = ?
> >
> > Strangely,the line "read(3, "\0\0\0\1\0\0\200\0\0\0\0\0\0\0\0\0", 32768)
> > = 16" points out that the return value is 16 instead of 32768.
> > Could someone give your comments on this case?
>
> That's fine:
>
> RETURN VALUES
> If successful, the number of bytes actually read is returned. Upon read-
> ing end-of-file, zero is returned. Otherwise, a -1 is returned and the
> global variable errno is set to indicate the error.
>
> Thanks,
> -Garrett
------------------------------------------------------------------------------
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list