On 03.10.2014 17:03, Eric Blake wrote:
> Aeons ago (commit 34dcbbb4, v0.8.2), we added a new libvirt event
> (VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON) in order to tell the user WHY
> the guest halted. This is because at least VDSM wants to react
> differently to ENOSPC events (resize the lvm partition to be larger,
> and resume the guest as if nothing had happened) from all other events
> (I/O is hosed, throw up our hands and flag things as broken). At the
> time this was done, downstream RHEL qemu added a vendor extension
> '__com.redhat_reason', which would be exactly one of these strings:
> "enospc", "eperm", "eio", and "eother". In
our stupidity, we exposed
> those exact strings to clients, rather than an enum, and we also
> return "" if we did not have access to a reason (which was the case
> for upstream qemu).
>
> Fast forward to now: upstream qemu commit c7c2ff0c (will be qemu 2.2)
> FINALLY adds a 'nospace' boolean, after discussion with multiple
> projects determined that VDSM really doesn't care about distinction
> between any other error types. So this patch converts 'nospace' into
> the string "enospc" for compatibility with RHEL clients that were
> already used to the downstream extension, while leaving the reason
> blank for all other cases (no change from the status quo).
>
> See also
https://bugzilla.redhat.com/show_bug.cgi?id=1119784
>
Thanks; pushed.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library