Hello AST-Developers, Please review the following issue and determine if it's a bug within ksh93 Version M 1993-12-28 s+ for platform Linux x86_64. Any possible workaround exists? Please let me know if you need any additional information.
Thanks,
Good
dcflnx103:/home/mknemeth: uname -a
Linux dcflnx103 2.4.21-47.0.1.ELsmp #1 SMP Fri Oct 13 17:51:28 EDT 2006 x86_64
x86_64 x86_64 GNU/Linux
dcflnx103:/home/mknemeth: /sopt/icds/pkgs/ksh93/xksh.lx.3.x86_64 -I
dcflnx103:/home/mknemeth: echo $$
5418
dcflnx103:/home/mknemeth: echo ${.sh.version}
Version M 1993-12-28 s+
dcflnx103:/home/mknemeth: cat doit1
echo hello
dcflnx103:/home/mknemeth: ./doit1
hello
Strace output for ksh93 when -> dcflnx103:/home/mknemeth: ./doit1
dcflnx103:/home/mknemeth: strace -p 5418 -ff
Process 5418 attached - interrupt to quit
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff4f70, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, ".", 80) = 1
write(2, ".", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff4e00) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff4f70, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "/", 80) = 1
write(2, "/", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff4e00) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff4f70, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "d", 80) = 1
write(2, "d", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff4e00) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff4f70, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "o", 80) = 1
write(2, "o", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff4e00) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff4f70, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "i", 80) = 1
write(2, "i", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff4e00) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff4f70, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "t", 80) = 1
write(2, "t", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff4e00) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff4f70, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "1", 80) = 1
write(2, "1", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff4e00) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff4f70, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "\r", 80) = 1
ioctl(2, SNDCTL_TMR_START or TCSETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 opost isig icanon echo ...}) = 0
write(2, "\n", 1) = 1
lseek(3, 0, SEEK_CUR) = 19108
lseek(3, 19108, SEEK_SET) = 19108
read(3, "strace -p 5418 -ff\n\0", 8192) = 20
lseek(3, 19128, SEEK_SET) = 19128
read(3, "", 8192) = 0
lseek(3, 0, SEEK_END) = 19128
lseek(3, 0, SEEK_END) = 19128
write(3, "./doit1\n\0\0", 10) = 10
lseek(3, 0, SEEK_CUR) = 19138
rt_sigaction(SIGTTIN, {SIG_DFL}, {SIG_IGN}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [TTIN], NULL, 8) = 0
rt_sigaction(SIGTTOU, {SIG_DFL}, {SIG_IGN}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [TTOU], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT PIPE], [], 8) = 0
vfork(Process 6196 attached
) = 6196
[pid 5418] rt_sigprocmask(SIG_SETMASK, [], <unfinished ...>
[pid 6196] --- SIGSTOP (Stopped (signal)) @ 0 (0) ---
[pid 5418] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 6196] --- SIGSTOP (Stopped (signal)) @ 0 (0) ---
[pid 5418] setpgid(6196, 6196 <unfinished ...>
[pid 6196] rt_sigprocmask(SIG_SETMASK, [], <unfinished ...>
[pid 5418] <... setpgid resumed> ) = 0
[pid 6196] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 5418] rt_sigaction(SIGTTIN, {SIG_IGN}, <unfinished ...>
[pid 6196] setpgid(0, 0 <unfinished ...>
[pid 5418] <... rt_sigaction resumed> {SIG_DFL}, 8) = 0
[pid 6196] <... setpgid resumed> ) = 0
[pid 5418] rt_sigaction(SIGTTOU, {SIG_IGN}, <unfinished ...>
[pid 6196] execve("./doit1", ["./doit1"], [/* 72 vars */] <unfinished ...>
[pid 5418] <... rt_sigaction resumed> {SIG_DFL}, 8) = 0
[pid 5418] setpgid(6196, 6196) = 0
[pid 5418] kill(4294961100, SIG_0) = 0
[pid 5418] ioctl(2, TIOCSPGRP, [6196]) = 0
[pid 5418] ioctl(2, TIOCGPGRP, [6196]) = 0
[pid 5418] wait4(-1, Process 5418 suspended
<unfinished ...>
[pid 6196] <... execve resumed> ) = -1 ENOEXEC (Exec format error)
[pid 6196] exit_group(126) = ?
Process 5418 resumed
Process 6196 detached
<... wait4 resumed> 0x7fbfffaa9c, WUNTRACED|0x8, NULL) = -1 EINVAL (Invalid
argument)
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 126}], WUNTRACED, NULL) = 6196
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigreturn(0x11) = -1 ENOSYS (Function not implemented)
wait4(-1, 0x7fbfffaa9c, WNOHANG|WUNTRACED|0x8, NULL) = -1 EINVAL (Invalid
argument)
wait4(-1, 0x7fbfffaa9c, WNOHANG|WUNTRACED, NULL) = -1 ECHILD (No child
processes)
rt_sigaction(SIGCHLD, {0x41cb9f, [], SA_RESTORER|SA_INTERRUPT, 0x2a95949a20},
{0x41cb9f, [], SA_RESTORER|SA_INTERRUPT, 0x2a95949a20}, 8) = 0
ioctl(2, TIOCGPGRP, [6196]) = 0
ioctl(2, TIOCSPGRP, [5418]) = 0
lseek(3, 19138, SEEK_SET) = 19138
lseek(3, 19138, SEEK_SET) = 19138
read(3, "", 8192) = 0
write(2, "nicds3.0:dcflnx103:/home/mknemet"..., 35) = 35
rt_sigaction(SIGWINCH, {0x413440, [], SA_RESTORER|SA_INTERRUPT, 0x2a95949a20},
{0x413440, [], SA_RESTORER|SA_INTERRUPT, 0x2a95949a20}, 8) = 0
ioctl(2, TIOCGWINSZ, {ws_row=74, ws_col=103, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_STOP or TCSETSW, {B9600 opost isig -icanon -echo ...}) = 0
ioctl(0, CDROMEJECT_SW, 0x7fbfff4e00) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL <unfinished ...>
Process 5418 detached
Bad
dcflnx103:/home/mknemeth: uname -a
Linux dcflnx103 2.4.21-47.0.1.ELsmp #1 SMP Fri Oct 13 17:51:28 EDT 2006 x86_64
x86_64 i386-64 GNU/Linux
dcflnx103:/home/mknemeth: /sopt/icds/pkgs/ksh93/xksh.lx.3.x86_64 -I
dcflnx103:/home/mknemeth: echo $$
13458
dcflnx103:/home/mknemeth: sleep 300 &
[1] 23920
dcflnx103:/home/mknemeth: cat doit1
echo hello
dcflnx103:/home/mknemeth: ./doit1
/sopt/icds/pkgs/ksh93/xksh.lx.3.x86_64: ./doit1: ./doit1: cannot execute
[Invalid argument]
Wait for background process to terminate and then doit1 works fine.
29625 pts/57 00:00:00 ps
[1] + Done sleep 300 &
dcflnx103:/home/mknemeth: ./doit1
hello
Strace output for ksh93 on first doit1 invocation that generates the error ->
dcflnx103:/home/mknemeth: ./doit1
dcflnx103:/home/mknemeth: strace -p 13458 -ff
Process 13458 attached - interrupt to quit
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff6550, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, ".", 80) = 1
write(2, ".", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff63e0) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff6550, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "/", 80) = 1
write(2, "/", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff63e0) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff6550, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "d", 80) = 1
write(2, "d", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff63e0) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff6550, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "o", 80) = 1
write(2, "o", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff63e0) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff6550, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "i", 80) = 1
write(2, "i", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff63e0) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff6550, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "t", 80) = 1
write(2, "t", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff63e0) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff6550, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "1", 80) = 1
write(2, "1", 1) = 1
ioctl(0, CDROMEJECT_SW, 0x7fbfff63e0) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL) = 1 (in [0])
recvfrom(0, 0x7fbfff6550, 80, 2, 0, 0) = -1 ENOTSOCK (Socket operation on
non-socket)
read(0, "\r", 80) = 1
ioctl(2, SNDCTL_TMR_START or TCSETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 opost isig icanon echo ...}) = 0
write(2, "\n", 1) = 1
lseek(3, 0, SEEK_CUR) = 19022
lseek(3, 19022, SEEK_SET) = 19022
read(3, "strace -p 13458 -ff\n\0\0", 8192) = 22
lseek(3, 19044, SEEK_SET) = 19044
read(3, "", 8192) = 0
lseek(3, 0, SEEK_END) = 19044
lseek(3, 0, SEEK_END) = 19044
write(3, "./doit1\n\0\0", 10) = 10
lseek(3, 0, SEEK_CUR) = 19054
rt_sigaction(SIGTTIN, {SIG_DFL}, {SIG_IGN}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [TTIN], NULL, 8) = 0
rt_sigaction(SIGTTOU, {SIG_DFL}, {SIG_IGN}, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [TTOU], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [HUP INT QUIT PIPE], [], 8) = 0
vfork(Process 4424 attached
) = 4424
[pid 4424] --- SIGSTOP (Stopped (signal)) @ 0 (0) ---
[pid 13458] rt_sigprocmask(SIG_SETMASK, [], <unfinished ...>
[pid 4424] --- SIGSTOP (Stopped (signal)) @ 0 (0) ---
[pid 13458] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 4424] rt_sigprocmask(SIG_SETMASK, [], <unfinished ...>
[pid 13458] setpgid(4424, 4424 <unfinished ...>
[pid 4424] <... rt_sigprocmask resumed> NULL, 8) = 0
[pid 13458] <... setpgid resumed> ) = 0
[pid 4424] setpgid(0, 0) = 0
[pid 4424] execve("./doit1", ["./doit1"], [/* 73 vars */] <unfinished ...>
[pid 13458] rt_sigaction(SIGTTIN, {SIG_IGN}, {SIG_DFL}, 8) = 0
[pid 13458] rt_sigaction(SIGTTOU, {SIG_IGN}, {SIG_DFL}, 8) = 0
[pid 13458] setpgid(4424, 4424) = 0
[pid 13458] kill(4294962872, SIG_0) = 0
[pid 13458] ioctl(2, TIOCSPGRP, [4424]) = 0
[pid 13458] ioctl(2, TIOCGPGRP, [4424]) = 0
[pid 13458] wait4(-1, Process 13458 suspended
<unfinished ...>
[pid 4424] <... execve resumed> ) = -1 ENOEXEC (Exec format error)
[pid 4424] exit_group(126) = ?
Process 13458 resumed
Process 4424 detached
<... wait4 resumed> 0x7fbfffc07c, WUNTRACED|0x8, NULL) = -1 EINVAL (Invalid
argument)
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 126}], WUNTRACED, NULL) = 4424
--- SIGCHLD (Child exited) @ 0 (0) ---
rt_sigreturn(0x11) = -1 ENOSYS (Function not implemented)
wait4(-1, 0x7fbfffc07c, WNOHANG|WUNTRACED|0x8, NULL) = -1 EINVAL (Invalid
argument)
wait4(-1, 0x7fbfffc07c, WNOHANG|WUNTRACED, NULL) = 0
rt_sigaction(SIGCHLD, {0x41cb9f, [], SA_RESTORER|SA_INTERRUPT, 0x2a95949a20},
{0x41cb9f, [], SA_RESTORER|SA_INTERRUPT, 0x2a95949a20}, 8) = 0
ioctl(2, TIOCGPGRP, [4424]) = 0
ioctl(2, TIOCSPGRP, [13458]) = 0
stat("/var/spool/mail/mknemeth", 0x7fbfffc7b0) = -1 ENOENT (No such file or
directory)
lseek(3, 19054, SEEK_SET) = 19054
lseek(3, 19054, SEEK_SET) = 19054
read(3, "", 8192) = 0
write(2, "nicds3.0:dcflnx103:/home/mknemet"..., 35) = 35
rt_sigaction(SIGWINCH, {0x413440, [], SA_RESTORER|SA_INTERRUPT, 0x2a95949a20},
{0x413440, [], SA_RESTORER|SA_INTERRUPT, 0x2a95949a20}, 8) = 0
ioctl(2, TIOCGWINSZ, {ws_row=74, ws_col=103, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(2, SNDCTL_TMR_TIMEBASE or TCGETS, {B9600 opost isig icanon echo ...}) = 0
ioctl(2, SNDCTL_TMR_STOP or TCSETSW, {B9600 opost isig -icanon -echo ...}) = 0
ioctl(0, CDROMEJECT_SW, 0x7fbfff63e0) = -1 EINVAL (Invalid argument)
select(1, [0], NULL, NULL, NULL <unfinished ...>
Process 13458 detached
Mike Nemeth
Global Engineering Systems
[EMAIL PROTECTED]
<<inline: Picture (Metafile) 1.jpg>>
_______________________________________________ ast-users mailing list [email protected] https://mailman.research.att.com/mailman/listinfo/ast-users
