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]

Reply via email to