-=| Андрей Волков, Thu, Sep 24, 2009 at 11:26:05AM +0300 |=-
> There was a server with Debian Etch 32 bit, PERL version - 5.8.8,
> and a script on perl, which opened a system pipe like this:
> open (PH,"/dev/squid");
> The pipe is creating like this : mkfifo /dev/squid
>
> After all, a new server was installed, with Debian Lenny 64 bit,
> Perl version - 5.10.0, and now perl doesn't open the pipe. I.e.
> after that stroke it doesn't go further, just freezing.
> Permissions and paths are ok.
Trying:
$ mkfifo test
$ perl -e'open(PH, "test")'
hangs here too (perl 5.10.0-25) until I "echo a word > test" in
another terminal.
It seems the open() call waits for the "other end" of the pipe to be
connected before continuing.
> May be smb know what the problem? Or it's a bug in a perl package?
The same thing happens with the following simple test C program:
$ cat test.c
#include <stdio.h>
FILE* f;
main() {
f = fopen("test", "r");
}
$ gcc test.c
$ ./a.out
<hangs>
So the problem seems to be global, not specific to perl. Perhaps the
kernel has changed the way the pipes are opened?
--
dam
Attachment:
signature.asc
Description: Digital signature