[dpdk-dev] [PATCH] vhost user: unlink sockaddr when poll sched fails

Ilya Maximets i.maximets at samsung.com
Mon Nov 20 14:07:06 CET 2017


Hi everyone,

This issue is already discussed many times here and in OVS mail-lists.
The basic restart issue was resolved by removing the sockets at exit
in OVS. The crash scenario is not handled but you're able to remove
all of the left files by some external script before restarting the OVS.

That is one of the discussions about:
http://dpdk.org/ml/archives/dev/2015-December/030326.html

The second point is that vhostuser ports are dpricated now in OVS and
will be removed in future release. So, it's better for you to migrate to
vhostuserclient and everything will be fine because QEMU properly handles
sockets itself.

So, IMHO, we should not add such overkill and, potentially, very dangerous
solutions to DPDK just to fix minor issue in deprecated OVS code.

Best regards, Ilya Maximets.

> From: Jan Wickbom <jan.wickbom at ericsson.com>
> 
> Issue:
> 
> Vhost user socket addresses left in /var/run/openvswitch.
> This will lead to failure to add vhost user ports with names that
> already exist in this directory.
> 
> When there is a failure to add a vhost user socket file descriptor to
> the file descriptor set using fdset_add() in
> rte_vhost_driver_register() the address bound to the socket is not
> released.
> 
> Solution:
> Add unlink of the file path corresponding to the socket address.
> 
> Signed-off-by: Jan Wickbom <jan.wickbom at ericsson.com>
> Signed-off-by: Gellert Babel <gellert.babel at ericsson.com>
> ---
>  lib/librte_vhost/socket.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/lib/librte_vhost/socket.c b/lib/librte_vhost/socket.c
> index 41aa3f9..eb9dae2 100644
> --- a/lib/librte_vhost/socket.c
> +++ b/lib/librte_vhost/socket.c
> @@ -352,6 +352,7 @@ struct vhost_user {
>  
>  err:
>  	close(fd);
> +	unlink(path);
>  	return -1;
>  }
>  
> -- 
> 1.9.1



More information about the dev mailing list