[dpdk-dev] [PATCH 1/3] vhost: do not generate signal when sendmsg fails

Maxime Coquelin maxime.coquelin at redhat.com
Thu Mar 29 15:46:03 CEST 2018



On 03/06/2018 11:43 AM, Tiwei Bie wrote:
> Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>
> ---
>   lib/librte_vhost/socket.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
> index 0354740fa..d703d2114 100644
> --- a/lib/librte_vhost/socket.c
> +++ b/lib/librte_vhost/socket.c
> @@ -181,7 +181,7 @@ send_fd_message(int sockfd, char *buf, int buflen, int *fds, int fd_num)
>   	}
>   
>   	do {
> -		ret = sendmsg(sockfd, &msgh, 0);
> +		ret = sendmsg(sockfd, &msgh, MSG_NOSIGNAL);
>   	} while (ret < 0 && errno == EINTR);
>   
>   	if (ret < 0) {
> 

Applied to dpdk-next-virtio/master with below commit message

------------------------------------------------------------
More precisely, do not generate a SIGPIPE signal if the peer
has closed the connection. Otherwise, it will terminate the
process by default. As a library, we should avoid terminating
the application process when error happens and just need to
return with an error.
------------------------------------------------------------

Thanks,
Maxime


More information about the dev mailing list