[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] qemu exit with pending I/O
From: |
Peter Lieven |
Subject: |
Re: [Qemu-block] qemu exit with pending I/O |
Date: |
Mon, 27 Apr 2015 13:51:17 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 |
Am 27.04.2015 um 12:47 schrieb Paolo Bonzini:
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.
But if I consider a raw image, quitting without a clean shutdown can
also leave an inconsistent state?
Peter
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
--
Mit freundlichen Grüßen
Peter Lieven
...........................................................
KAMP Netzwerkdienste GmbH
Vestische Str. 89-91 | 46117 Oberhausen
Tel: +49 (0) 208.89 402-50 | Fax: +49 (0) 208.89 402-40
address@hidden | http://www.kamp.de
Geschäftsführer: Heiner Lante | Michael Lante
Amtsgericht Duisburg | HRB Nr. 12154
USt-Id-Nr.: DE 120607556
...........................................................