* Daniel P. Berrangé (berra...@redhat.com) wrote:
> On Wed, Jun 22, 2022 at 03:34:52PM -0400, Peter Xu wrote:
> > On Wed, Jun 22, 2022 at 07:39:06PM +0100, Dr. David Alan Gilbert (git) 
> > wrote:
> > > diff --git a/migration/qemu-file.c b/migration/qemu-file.c
> > > index 74f919de67..e206b05550 100644
> > > --- a/migration/qemu-file.c
> > > +++ b/migration/qemu-file.c
> > > @@ -377,8 +377,22 @@ static ssize_t qemu_fill_buffer(QEMUFile *f)
> > >          return 0;
> > >      }
> > >  
> > > -    len = f->ops->get_buffer(f->ioc, f->buf + pending, 
> > > f->total_transferred,
> > > -                             IO_BUF_SIZE - pending, &local_error);
> > > +    do {
> > > +        len = qio_channel_read(f->ioc,
> > > +                               (char *)f->buf + pending,
> > > +                               IO_BUF_SIZE - pending,
> > > +                               &local_error);
> > > +        if (len == QIO_CHANNEL_ERR_BLOCK) {
> > > +            if (qemu_in_coroutine()) {
> > > +                qio_channel_yield(f->ioc, G_IO_IN);
> > > +            } else {
> > > +                qio_channel_wait(f->ioc, G_IO_IN);
> > > +            }
> > > +        } else if (len < 0) {
> > > +            len = EIO;
> > 
> > This should be -EIO.
> 
> Yes, that's correct change. /facepalm

I'll resend with that fixed.

Dave

> 
> > 
> > > +        }
> > > +    } while (len == QIO_CHANNEL_ERR_BLOCK);
> > 
> > It's failing only with the new TLS test I added for postcopy somehow (at
> > least /x86_64/migration/postcopy/recovery/tls).. I also verified after the
> > change it'll work again.
> 
> Yeah, I guess this is a rare failure condition that's not easily hit
> in our tests. Makes sense that recovery tests could hit it though.
> 
> With regards,
> Daniel
> -- 
> |: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
> |: https://libvirt.org         -o-            https://fstop138.berrange.com :|
> |: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
> 
-- 
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK


Reply via email to