Messages in this thread | | | Date | Wed, 23 Feb 2000 13:01:52 +0200 (EET) | From | Julian Anastasov <> | Subject | Re: accept() improvements for rt signals |
| |
Hello,
On Tue, 22 Feb 2000, Stephen C. Tweedie wrote:
> Hi, > > On Tue, 22 Feb 2000 17:38:45 +0200 (EET), Julian Anastasov > <uli@linux.tu-varna.acad.bg> said: > > > Is there a known problem with O_NONBLOCK|O_ASYNC listening > > sockets (2.2.15pre7 UP) ? I receive unexpected SIGIO after accept() > > using such listening socket. > > I was able to reproduce this on sockets connected from localhost. Can > you see if running the client and server on separate machines still > causes the problem? >
I have more information about the problem with the unexpected SIGIO in 2.2.15pre7 UP x86.
After adding some debugging in the kernel I found that send_sig_info() returns EPERM and send_sigio() fallbacks to SIGIO delivery using "send_sig(SIGIO, p, 1);". I have stopped to search the exact values used in the EPERM checking because I found this posting from Alessandro Sala <a.sala@mclink.it> on 06-DEC-1999 with the subject: "PROBLEM: Asynchronous I/O with realtime signals erroneously sends SIGIO".
http://kernelnotes.org/lnxlists/linux-kernel/lk_9912_01/msg01206.html http://marc.theaimsgroup.com/?l=linux-kernel&m=94451812209885&w=2
The problem is described very well and I think I have the same one. send_sigio() must pass the perm checking in send_sig_info(). I didn't checked the corresponding 2.3 code. This is the reason for the SIGIO. The event is for the listening fd. I didn't checked if SIGIO is received for the connected socket.
Regards
-- Julian Anastasov <uli@linux.tu-varna.acad.bg>
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |