Re: accept() improvements for rt signals

From: Julian Anastasov (uli@linux.tu-varna.acad.bg)
Date: Wed Feb 23 2000 - 06:01:52 EST


        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/



This archive was generated by hypermail 2b29 : Wed Feb 23 2000 - 21:00:32 EST