From: Juan Quintela <quintela@redhat.com>
To: Laurent Vivier <lvivier@redhat.com>
Cc: qemu-devel@nongnu.org, dgilbert@redhat.com, peterx@redhat.com
Subject: Re: [Qemu-devel] [PATCH 2/2] migration: to_dst_file at that point is NULL
Date: Tue, 25 Apr 2017 14:59:13 +0200 [thread overview]
Message-ID: <87vapsmyn2.fsf@secure.mitica> (raw)
In-Reply-To: <a338b667-31cf-8a49-7463-8efc8be7c009@redhat.com> (Laurent Vivier's message of "Tue, 25 Apr 2017 14:39:54 +0200")
Laurent Vivier <lvivier@redhat.com> wrote:
> On 25/04/2017 12:17, Juan Quintela wrote:
>> We have just arrived as:
>>
>> migration.c: qemu_migrate()
>> ....
>> s = migrate_init() <- puts it to NULL
>> ....
>> {tcp,unix}_start_outgoing_migration ->
>> socket_outgoing_migration
>> migration_channel_connect()
>> sets to_dst_file
>>
>> if tls is enabled, we do another round through
>> migrate_channel_tls_connect(), but we only set it up if there is no
>> error. So we don't need the assignation. I am removing it to remove
>> in the follwing patches the knowledge about MigrationState in that two
>> files.
>>
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>> migration/socket.c | 1 -
>> migration/tls.c | 1 -
>> 2 files changed, 2 deletions(-)
>>
>> diff --git a/migration/socket.c b/migration/socket.c
>> index 13966f1..dc88812 100644
>> --- a/migration/socket.c
>> +++ b/migration/socket.c
>> @@ -79,7 +79,6 @@ static void socket_outgoing_migration(QIOTask *task,
>>
>> if (qio_task_propagate_error(task, &err)) {
>> trace_migration_socket_outgoing_error(error_get_pretty(err));
>> - data->s->to_dst_file = NULL;
>> migrate_fd_error(data->s, err);
>> error_free(err);
>> } else {
>> diff --git a/migration/tls.c b/migration/tls.c
>> index 45bec44..a33ecb7 100644
>> --- a/migration/tls.c
>> +++ b/migration/tls.c
>> @@ -116,7 +116,6 @@ static void migration_tls_outgoing_handshake(QIOTask *task,
>>
>> if (qio_task_propagate_error(task, &err)) {
>> trace_migration_tls_outgoing_handshake_error(error_get_pretty(err));
>> - s->to_dst_file = NULL;
>> migrate_fd_error(s, err);
>> error_free(err);
>> } else {
>>
>
> In migrate_fd_error(), we have "assert(s->to_dst_file == NULL);", so you
> break the function with this change.
I missundertood something, or everyway to arrive here, to_dst_file is
always NULL. See the comment of the file, the only distintion if we go
through tls is that we do "yet" another round through the init
functions, but it is still NULL. At least I can't see how this can be
NULL at this point.
Forget about tls for now, centrate in the normal socket.c case:
we are inside socket_outgoing_migration()
nothing here touch any componetes of data
so go to the caller:
socket_start_outgoing_migration().
It init all data values to NULL/0 (g_new0).
we call qio_channel_set_name() -> no "data" here.
qio_channel_socket_connect_async()
It touches "neworking" things here, but nothing related to data, the
first function that we call when we receive a connection is
socket_outgoing_migration(), so we are good.
Back to the tls case:
migration_tls_outgoing_handshake () -> nothing touch "s" until we call
migrate_fd_error().
what calls migration_tls_outgoing_handshake?
migration_tls_outgoing_connect().
But that only calls it using qio_channel_tls_handshake(). Notice that
they pass us here MigrationState, so, who calls this function?
migration_channel_connect(), this is the function that calls tls, and
tls ends calling this function without the tls stuff. So, at the point
when we setup s->to_dst_file = f here, it is the 1st time that we have
set that field, too late to affect the migrate_fd_error() that we were
talking about, no?
Later, Juan.
next prev parent reply other threads:[~2017-04-25 12:59 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-04-25 10:17 [Qemu-devel] [PATCH 0/2] Misc migration fixes Juan Quintela
2017-04-25 10:17 ` [Qemu-devel] [PATCH 1/2] migration: Move check_migratable() into qdev.c Juan Quintela
2017-04-25 11:58 ` Laurent Vivier
2017-04-26 10:06 ` Peter Xu
2017-04-26 10:31 ` Juan Quintela
2017-04-25 10:17 ` [Qemu-devel] [PATCH 2/2] migration: to_dst_file at that point is NULL Juan Quintela
2017-04-25 12:39 ` Laurent Vivier
2017-04-25 12:59 ` Juan Quintela [this message]
2017-04-25 13:10 ` Laurent Vivier
2017-04-25 13:14 ` Daniel P. Berrange
2017-04-26 11:53 ` Peter Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87vapsmyn2.fsf@secure.mitica \
--to=quintela@redhat.com \
--cc=dgilbert@redhat.com \
--cc=lvivier@redhat.com \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).