RE: pipe() syscall on ia64 (tiger) doesn't set errno to EMFILE
"Luck, Tony" <[email protected]> Thu, 24 Apr 2003 09:12:45 -0700
| Newsgroups | gmane.linux.redhat.ia64.general |
|---|---|
| Message-ID | <[email protected]> |
Running strace, here are the last few lines:
pipe([993, 994]) = 995
pipe([995, 996]) = 997
pipe(0x6000000000000e78) = -1 EMFILE (Too many open files)
SYS_1212(0x1, 0x60000fffffffb310, 0x200000000001a420, 0xc00000000000020a, 0x2000000000041808, 0x2000000000001f6e, 0, 0x13) = 0
mmap(NULL, 65536, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x20000000002b4000
write(1, "errno set to EMFILE 0\n\n", 24errno set to EMFILE 0
Looks like strace saw "EMFILE" coming back from the system call, so its probably
someplace in the libc code where that is either getting lost, or overwritten.
My test was run on AS2.1 ... ldd says the library versions are
libc.so.6.1 => /lib/libc.so.6.1 (0x2000000000044000)
/lib/ld-linux-ia64.so.2 => /lib/ld-linux-ia64.so.2 (0x2000000000000000)
-Tony