Re: [PATCH] close.2: Mention a need of shutdown before closing socket

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 7 Oct 2011, Michael Kerrisk wrote:

> Lukas,
> 
> On Mon, Aug 29, 2011 at 2:26 PM, Lukas Czerner <lczerner@xxxxxxxxxx> wrote:
> > When dealing with sockets, we have to be sure that there is no recv
> > still blocking on it on another thread, otherwise it might block forever,
> > since no more messages will be send via the socket. We should advice to
> > use shutdown before closing socket.
> 
> I'm looking into this now. The picture may be more complex than this.
> Tell me, so you have a Solaris system available for testing?
> 
> Thanks,

Hi Michael,

Thanks for looking into this. Unfortunately I do not have any Solaris system
for testing, that was a customer report. His complaint was mainly not because
the behaviour on Linux differs, but because this was not documented anywhere.

Thanks!
-Lukas

> 
> Michael
> 
> 
> > Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx>
> > ---
> >  man2/close.2 |    7 +++++++
> >  1 files changed, 7 insertions(+), 0 deletions(-)
> >
> > diff --git a/man2/close.2 b/man2/close.2
> > index a2a2961..02472f3 100644
> > --- a/man2/close.2
> > +++ b/man2/close.2
> > @@ -114,6 +114,13 @@ other threads in the same process.
> >  Since a file descriptor may be reused,
> >  there are some obscure race conditions
> >  that may cause unintended side effects.
> > +.PP
> > +When dealing with sockets, you have to be sure that there is no
> > +.BR recv (2)
> > +still blocking on it on another thread, otherwise it might block forever,
> > +since no more messages will be send via the socket. Be sure to use
> > +.BR shutdown (2)
> > +to shut down all parts the connection before closing the socket.
> >  .\" Date: Tue, 4 Sep 2007 13:57:35 +0200
> >  .\" From: Fredrik Noring <noring@xxxxxxxxxx>
> >  .\" One such race involves signals and ERESTARTSYS. If a file descriptor
> > --
> > 1.7.4.4
> >
> >
> 
> 
> 
> 

-- 

[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux