[libvirt] [PATCH] Drive hot-unplug: reliable parsing of HMP results
Stefan Hajnoczi
stefanha at redhat.com
Tue Aug 11 11:40:44 UTC 2015
On Mon, Aug 10, 2015 at 05:01:22PM +0100, Daniel P. Berrange wrote:
> On Mon, Aug 10, 2015 at 04:49:03PM +0100, Stefan Hajnoczi wrote:
> > On Mon, Aug 10, 2015 at 4:37 PM, Frank Schreuder <fschreuder at transip.nl> wrote:
> > > Hot-unplugging a disk from a guest that supports hot-unplugging generates an error
> > > in the libvirt log when running QEMU with the "-msg timestamp=on" flag.
> > >
> > > 2015-08-06 10:48:59.945+0000: 11662: error : qemuMonitorTextDriveDel:2594 :
> > > operation failed: deleting drive-virtio-disk4 drive failed:
> > > 2015-08-06T10:48:59.945058Z Device 'drive-virtio-disk4' not found
> > >
> > > This error is caused because the HMP results are getting prefixed with a timestamp.
> > > Parsing the output is not reliable with STRPREFIX as the results can be prefixed with a timestamp.
> > >
> > > Using strstr ensures that parsing the output works whether the results are prefixed or not.
> > >
> > > Cc: Stefan Hajnoczi <stefanha at redhat.com>
> > > Cc: Daniel P. Berrange <berrange at redhat.com>
> > > Signed-off-by: Frank Schreuder <fschreuder at transip.nl>
> > > ---
> > >
> > > src/qemu/qemu_monitor_text.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c
> > > index 2aa0460..d5ef089 100644
> > > --- a/src/qemu/qemu_monitor_text.c
> > > +++ b/src/qemu/qemu_monitor_text.c
> > > @@ -2586,7 +2586,7 @@ int qemuMonitorTextDriveDel(qemuMonitorPtr mon,
> > >
> > > /* (qemu) drive_del wark
> > > * Device 'wark' not found */
> > > - } else if (STRPREFIX(reply, "Device '") && (strstr(reply, "not found"))) {
> > > + } else if (strstr(reply, "Device '") && strstr(reply, "not found")) {
> > > /* NB: device not found errors mean the drive was auto-deleted and we
> > > * ignore the error */
> > > } else if (STRNEQ(reply, "")) {
> >
> > I'm not very familiar with the libvirt codebase, but perhaps the
> > timestamps on error messages should be stripped in the QEMU monitor
> > processIO handler functions?
> >
> > That way any remaining bugs like this will be resolved too.
>
> That would be right froma strict correctness POV, but looking at the
> existing monitor handling code it all uses strstr too, so this is
> matching existing practice. The text monitor code is scary enough
> that it is probably wise not to try changing it at this stage in
> its life.
Fair enough.
Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150811/92fc155b/attachment-0001.sig>
More information about the libvir-list
mailing list