Date: Fri, 8 Nov 2002 10:46:43 +0100 From: Joan Picanyol i Puig <lists-freebsd-questions@biaix.org> To: freebsd-questions@freebsd.org Subject: trouble with perl writing to pipes :( Message-ID: <20021108094643.GA3590@grummit.biaix.org>
index | next in thread | raw e-mail
[-- Attachment #1 --]
Hi,
I'm noticing some weird behaviour having perl writing to pipes (they eat
my output):
grummit:~/tmp/runwhen/dirs/root/runwhen/cvsup$ cat shownextrun
#!/usr/bin/perl -w
print('sleeping; next run at: ',
scalar(localtime(time()+$ENV{'DELAY'})), "\n");
exec({ $ARGV[0] } @ARGV);
grummit:~/tmp/runwhen/dirs/root/runwhen/cvsup$ DELAY=1 ./shownextrun true
sleeping; next run at: Fri Nov 8 10:44:21 2002
grummit:~/tmp/runwhen/dirs/root/runwhen/cvsup$ DELAY=1 ./shownextrun true | cat
grummit:~/tmp/runwhen/dirs/root/runwhen/cvsup$
Attached is the diff of the two ktrace outputs, one sending the output
through the pipe, one without doing so. As showed above, running with the
pipe eats my output. The diff was obtained by ripping the pid by "kdump
-f ktrace.out.nopipe | cut -d ' ' -f 4- > ktrace.out.nopipe.nopid". The
original dump's are available (as text) at http://biaix.org/pk/debug/
tks
--
pica
[-- Attachment #2 --]
*** ktrace.out.pipe.nopid Fri Nov 8 10:22:18 2002
--- ktrace.out.nopipe.nopid Fri Nov 8 10:22:01 2002
***************
*** 1356,1366 ****
perl CALL break(0x8058000)
perl RET break 0
perl CALL break(0x8059000)
perl RET break 0
perl CALL getpid
! perl RET getpid 3416/0xd58
perl CALL break(0x805a000)
perl RET break 0
perl CALL fstat(0x3,0xbfbfd29c)
perl RET fstat 0
perl CALL break(0x805c000)
--- 1356,1366 ----
perl CALL break(0x8058000)
perl RET break 0
perl CALL break(0x8059000)
perl RET break 0
perl CALL getpid
! perl RET getpid 3410/0xd52
perl CALL break(0x805a000)
perl RET break 0
perl CALL fstat(0x3,0xbfbfd29c)
perl RET fstat 0
perl CALL break(0x805c000)
***************
*** 1418,1429 ****
perl RET read 624/0x270
perl CALL close(0x3)
perl RET close 0
perl CALL fstat(0x1,0xbfbff83c)
perl RET fstat 0
! perl CALL break(0x8061000)
! perl RET break 0
perl CALL execve(0xbfbff5cc,0x8050080,0xbfbffb64)
perl NAMI "/command/true"
perl RET execve -1 errno 2 No such file or directory
perl CALL execve(0xbfbff5cc,0x8050080,0xbfbffb64)
perl NAMI "/bin/true"
--- 1418,1434 ----
perl RET read 624/0x270
perl CALL close(0x3)
perl RET close 0
perl CALL fstat(0x1,0xbfbff83c)
perl RET fstat 0
! perl CALL ioctl(0x1,TIOCGETA,0xbfbff870)
! perl RET ioctl 0
! perl CALL write(0x1,0x8059000,0x30)
! perl GIO fd 1 wrote 48 bytes
! "sleeping; next run at: Fri Nov 8 10:16:29 2002
! "
! perl RET write 48/0x30
perl CALL execve(0xbfbff5cc,0x8050080,0xbfbffb64)
perl NAMI "/command/true"
perl RET execve -1 errno 2 No such file or directory
perl CALL execve(0xbfbff5cc,0x8050080,0xbfbffb64)
perl NAMI "/bin/true"
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021108094643.GA3590>
