Re: Paniclog contents?

トップ ページ
このメッセージを削除
このメッセージに返信
著者: Greg A. Woods
日付:  
To: Philip Hazel
CC: Christoph Lameter, Tom Samplonius, exim-users
題目: Re: Paniclog contents?
[ On Mon, January 13, 1997 at 09:48:48 (+0000), Philip Hazel wrote: ]
> Subject: Re: Paniclog contents?
>
> Now that I think about it, of course, I remember that TCP/IP is a
> two-way independently routed protocol, and it is presumably possible for
> an incoming packet to arrive and the response to fail in these ways.
> Apologies for not thinking of this when I wrote the code - in fact what
> I did was to copy the code that is in smail, which (I've just checked)
> does exactly the same thing. It contains the following comment:
>
>             /*                                
>              * for some reason, accept() fails badly (and repeatedly)          
>              * on some systems.  To prevent the paniclog from filling        
>              * up, exit if this happens too many times.         
>              */                                              

>
> I don't know if this is still the case on modern OS, but I copied the
> logic just in case. There is a pause of 5 seconds after each such error.


Philip, your explanation sounds plausible, but not for 4BSD I think.

In reading TCP/IP Illustrated V2, and the NetBSD source code, I note
that there's an undocumented error return: ECONNABORTED, which occurs
if the socket state becomes SS_CANTRCVMORE.

According to Stevens' description though, the socket layer shouldn't be
notified of an incoming connection until after the three-way handshake
has been successfully completed. To me this implies that accept() will
never awaken if the routing is asymetric and the reply SYN&ACK cause a
"host unreachable".

All he says about asynchronous errors during the accept is that they can
occur, but no further details of what they might be, how, why, etc.

-- 
                            Greg A. Woods


+1 416 443-1734            VE3TCP            robohack!woods
Planix, Inc. <woods@???>; Secrets of the Weird <woods@???>