On Wed, Sep 13, 2017 at 12:59:49PM +0200, Juan Quintela wrote: > We make the locking and the transfer of information specific, even if we > are still receiving things through the main thread. > > Signed-off-by: Juan Quintela <[email protected]> > > -- > > We split when we create the main channel and where we start the main > migration thread, so we wait for the creation of the other threads. > > Use multifd_clear_pages(). > Don't remove object_unref() > --- > migration/migration.c | 7 ++++--- > migration/migration.h | 1 + > migration/ram.c | 55 > +++++++++++++++++++++++++++++++++++++++++++++++---- > migration/socket.c | 2 +- > 4 files changed, 57 insertions(+), 8 deletions(-) >
> diff --git a/migration/socket.c b/migration/socket.c > index 22fb05edc8..63dedb22e8 100644 > --- a/migration/socket.c > +++ b/migration/socket.c > @@ -180,12 +180,12 @@ static gboolean > socket_accept_incoming_migration(QIOChannel *ioc, > > qio_channel_set_name(QIO_CHANNEL(sioc), "migration-socket-incoming"); > migration_channel_process_incoming(QIO_CHANNEL(sioc)); > - object_unref(OBJECT(sioc)); As before - this creates a reference leak. migration_channel_process_incoming will acquire its own reference on 'sioc', so we must drop the reference that this function owns. 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 :|
