On Wed, Mar 09, 2022 at 04:21:01PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> 09.03.2022 10:48, Rao Lei wrote:
> > During the IO stress test, the IO request coroutine has a probability that 
> > is
> > can't be awakened when the NBD server is killed.
> > 
> > The GDB stack is as follows:

> > When we do failover in COLO mode, QEMU will hang while it is waiting for
> > the in-flight IO. From the call trace, we can see the IO request coroutine
> > has yielded in nbd_co_send_request(). When we kill the NBD server, it will 
> > never
> > be wake up. Actually, when we do IO stress test, it will have a lot of
> > requests in free_sema queue. When the NBD server is killed, current
> > MAX_NBD_REQUESTS finishes with errors but they wake up at most
> > MAX_NBD_REQEUSTS from the queue. So, let's move qemu_co_queue_next out
> > to fix this issue.
> > 
> > Signed-off-by: Lei Rao<lei....@intel.com>
> 
> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com>

Thanks; will queue through my NBD tree.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org


Reply via email to