Date: Wed, 18 Jan 2017 21:52:06 +0000 From: Colin Percival <cperciva@tarsnap.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: freebsd-net@freebsd.org Subject: Re: sosend returning ERESTART Message-ID: <01000159b390c409-5adcb488-67e8-4038-b9b0-5d4f33460205-000000@email.amazonses.com> In-Reply-To: <20170118103650.GE2349@kib.kiev.ua> References: <01000159aac969e6-b2fc3913-d04e-42d4-befd-402ed0d830bf-000000@email.amazonses.com> <20170117100634.GS2349@kib.kiev.ua> <01000159afddb7ce-064a5d17-4b81-4b2c-a9b4-3ddd2ad2e377-000000@email.amazonses.com> <20170118103650.GE2349@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On 01/18/17 02:36, Konstantin Belousov wrote: > On Wed, Jan 18, 2017 at 04:37:40AM +0000, Colin Percival wrote: >> Thanks, looks like that was exactly it -- if the TCP send buffer was full >> we would call sbwait, and if a signal arrived it would return ERESTART. >> It looks like setting the SB_NOINTR flag will prevent this; I'm testing a >> patch right now. > > Note that passing SB_NOINTR unconditionally or even only for mounts > with nointr (default) option is wrong. You make the socket operation > uninterruptible, process terminate-ability becomes depended on the > external factor, the behaviour of the remote system. I'm not sure what you're getting at here. The fact that "NFS mounted without the intr flag" + "unresponsive NFS server" = "unkillable processes" has been a (mis)feature of NFS for decades. -- Colin Percival Security Officer Emeritus, FreeBSD | The power to serve Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?01000159b390c409-5adcb488-67e8-4038-b9b0-5d4f33460205-000000>