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

Re: [Nbd] [PATCH 05/11] nbd-server: treat accept errors as non-fatal



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: