Hi guys,
      I'm coming across this issue where execve05 is failing down in
"do_child_1()" because of a hangup waiting for a pipe to become
available, as read(2) blocks the input down in sync_pipe_wait().
Output shown below:

[EMAIL PROTECTED] ~ $ cd ./ltp-full-20080531/; gdb
testcases/kernel/syscalls/execve/execve05
GNU gdb 6.7.1
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) set arg -F testcases/bin/test3
(gdb) r
Starting program:
/usr/home/gcooper/ltp-full-20080531/testcases/kernel/syscalls/execve/execve05
-F testcases/bin/test3
execve05    1  BROK  :  open(2) failed

Program received signal SIGINT, Interrupt.
0xffffe410 in __kernel_vsyscall ()
(gdb) where
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e90d93 in read () from /lib/libc.so.6
#2  0x08049650 in sync_pipe_wait ()
#3  0x08049115 in main (ac=3, av=0xbf984bf4) at execve05.c:141

      I then put in a strerror at the point of failure and discovered:

Starting program:
/usr/home/gcooper/ltp-full-20080531/testcases/kernel/syscalls/execve/execve05
-F testcases/bin/test3
execve05    1  BROK  :  open(2) failed Permission denied

      Which makes sense since I'm not root (when running the process),
root owns test3, and the umask is set such that only root can write to
the file:

[EMAIL PROTECTED] ~/ltp-full-20080531 $ ls -l testcases/bin/test3
-rwxr-xr-x 1 root root 8088 Jun 26 01:48 testcases/bin/test3
[EMAIL PROTECTED] ~/ltp-full-20080531 $ whoami
gcooper

      The short term solution is to set the umask / ownership up so I
have access to the files, but the long term question is: "Why aren't
sync_pipe_wait and sync_pipe_notify using select(2) instead of
straight read(2) / write(2), because it would avoid this little issue
with blocking I/O quite easily..."
Thanks,
-Garrett

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to