Package: coreutils
Version: 6.10-6
To: [email protected]
X-Debbugs-CC: [email protected]
From: [email protected]
Subject: Size of a named pipe made by mknod or mkfifo always zero.
Hi, there!
The size of a filled named pipe is always zero. I think this is wrong!
A read operation is going to hang for try to read from an empty pipe.
To go around this trap it is necessary to do a conditional test on
the filesize, [ -s pipe ].Problem: The test doesn't work, because
filesize is always zero.
Try:
mknod pipe&
sleep 3600<>pipe&
echo 'date'>pipe
[ -s pipe ]&& echo "filled up"
ls -l pipe;
stat pipe # if size zero, it is wrong
[ -s pipe ]&& { read val<pipe; echo $val; }
This is a critical error. While parallel processing a script would be
blocked.
In worst case it causes a deadlock situation. Every changing of a file´s
condition
should be reported whithin the i-node. The stat command shows 0 Bytes, 0
Blocks for
a well filled pipe!
I think it is important.
I found it in several actual distros, also Debian. I did a look up for
this error
on the internet and I found a message to that topic from 2008. So I
think it´s a
long term error.
Best regards
TOM
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]