2016-07-21 21:35, Yuanhan Liu: > On Thu, Jul 21, 2016 at 04:19:35PM +0300, Ilya Maximets wrote: > > If something abnormal happened to QEMU, 'connect()' can block calling > > thread (e.g. main thread of OVS) forever or for a really long time. > > This can break whole application or block the reconnection thread. > > > > Example with OVS: > > > > ovs_rcu(urcu2)|WARN|blocked 512000 ms waiting for main to quiesce > > (gdb) bt > > #0 connect () from /lib64/libpthread.so.0 > > #1 vhost_user_create_client (vsocket=0xa816e0) > > #2 rte_vhost_driver_register > > #3 netdev_dpdk_vhost_user_construct > > #4 netdev_open (name=0xa664b0 "vhost1") > > [...] > > #11 main > > > > Fix that by setting non-blocking mode for client sockets for connection. > > > > Fixes: 64ab701c3d1e ("vhost: add vhost-user client mode") > > > > Signed-off-by: Ilya Maximets <i.maximets at samsung.com> > > Acked-by: Yuanhan Liu <yuanhan.liu at linux.intel.com>
Applied, thanks