[dpdk-stable] [PATCH] vhost:fix crash on port deletion and VM shutdown at same time
Maxime Coquelin
maxime.coquelin at redhat.com
Wed Feb 5 10:46:15 CET 2020
On 1/16/20 3:07 AM, Zhike Wang wrote:
> The vhost_user_read_cb() and rte_vhost_driver_unregister() can be
> called at the same time by 2 threads. Eg thread1 calls vhost_user_read_cb()
> and removes the vsocket from conn_list, then thread2 calls
> rte_vhost_driver_unregister() and frees the vsocket since it is NOT in the
> conn_list. So thread1 will access invalid memory when trying to reconnect.
>
> The fix is to move the "removing of vsocket from conn_list" to end of the
> vhost_user_read_cb(), then avoid the race condition.
>
> The core trace is
> Program terminated with signal 11, Segmentation fault.
>
> Signed-off-by: Zhike Wang <wangzhike at jd.com>
> ---
> lib/librte_vhost/socket.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
Applied to dpdk-next-virtio tree.
Thanks,
Maxime
More information about the stable
mailing list