Re: [Nbd] [PATCH 05/11] nbd-server: treat accept errors as non-fatal
- To: "Dmitry V. Levin" <ldv@...1147...>
- Cc: nbd-general@lists.sourceforge.net
- Subject: Re: [Nbd] [PATCH 05/11] nbd-server: treat accept errors as non-fatal
- From: Wouter Verhelst <w@...112...>
- Date: Sun, 24 Jun 2012 01:31:28 +0200
- Message-id: <20120623233128.GK7471@...3...>
- In-reply-to: <20120621214048.GE26247@...1147...>
- References: <20120621214048.GE26247@...1147...>
On Fri, Jun 22, 2012 at 01:40:48AM +0400, Dmitry V. Levin wrote:
> In most cases, an error returned by accept system call is a network
> error, which should not terminate the whole nbd-server.
Yes, that's a leftover from the days when nbd-server ran in
one-process-per-export mode (i.e., the 2.7 days). Oops.
> Signed-off-by: Dmitry V. Levin <ldv@...1147...>
> ---
> nbd-server.c | 12 ++++++++----
> 1 files changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/nbd-server.c b/nbd-server.c
> index 55b1347..82a05a3 100644
> --- a/nbd-server.c
> +++ b/nbd-server.c
> @@ -2204,8 +2204,10 @@ int serveloop(GArray* servers) {
>
> DEBUG("accept, ");
> if(modernsock >= 0 && FD_ISSET(modernsock, &rset)) {
> - if((net=accept(modernsock, (struct sockaddr *) &addrin, &addrinlen)) < 0)
> - err("accept: %m");
> + if((net=accept(modernsock, (struct sockaddr *) &addrin, &addrinlen)) < 0) {
> + err_nonfatal("accept: %m");
> + continue;
> + }
> client = negotiate(net, NULL, servers, NEG_INIT | NEG_MODERN);
> if(!client) {
> err_nonfatal("negotiation failed");
> @@ -2217,8 +2219,10 @@ int serveloop(GArray* servers) {
> for(i=0; i < servers->len && net < 0; i++) {
> serve=&(g_array_index(servers, SERVER, i));
> if(FD_ISSET(serve->socket, &rset)) {
> - if ((net=accept(serve->socket, (struct sockaddr *) &addrin, &addrinlen)) < 0)
> - err("accept: %m");
> + if ((net=accept(serve->socket, (struct sockaddr *) &addrin, &addrinlen)) < 0) {
> + err_nonfatal("accept: %m");
> + continue;
> + }
> }
> }
> if(net >= 0) {
> --
> ldv
>
> ------------------------------------------------------------------------------
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> _______________________________________________
> Nbd-general mailing list
> Nbd-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nbd-general
>
--
The volume of a pizza of thickness a and radius z can be described by
the following formula:
pi zz a
Reply to: