[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] qemu exit with pending I/O
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-block] qemu exit with pending I/O |
Date: |
Mon, 27 Apr 2015 12:47:49 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.5.0 |
On 16/04/2015 10:46, Peter Lieven wrote:
>
>
> I just run tests with the new libiscsi branch that allows async
> reconnects. I found that
> I cannot quit qemu while qemu is waiting for a reconnect to the storage.
> E.g.
> I start qemu and then shut down the storage. Qemu will then loop forever in
> bdrv_flush() and/or bdrv_drain_all().
>
> It would be nice to be able to shut down qemu via normal quit and not have
> to kill it in such a case.
The reason to do this, is that while I/O is pending you do not know if
the I/O has been completed or not.
It's then possible that the I/O is completed after some writes from
another invocation of the VM, causing data corruption. For the same
reason the NBD driver does not do timeouts.
Basically, bdrv_drain_all() is there to emulate nfs=hard. You always
have SIGKILL, so it's not exactly the same, but leaving it out would
have the same problems as nfs=soft.
Paolo