qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com>
To: qemu-devel@nongnu.org
Cc: mszeredi@redhat.com, lukasstraub2@web.de, quintela@redhat.com,
	pannengyuan@huawei.com, f4bug@amsat.org, stefanha@redhat.com
Subject: [PULL 11/12] migration/colo.c: Move colo_notify_compares_event to the right place
Date: Mon,  1 Jun 2020 19:40:03 +0100	[thread overview]
Message-ID: <20200601184004.272784-12-dgilbert@redhat.com> (raw)
In-Reply-To: <20200601184004.272784-1-dgilbert@redhat.com>

From: Lukas Straub <lukasstraub2@web.de>

If the secondary has to failover during checkpointing, it still is
in the old state (i.e. different state than primary). Thus we can't
expose the primary state until after the checkpoint is sent.

This fixes sporadic connection reset of client connections during
failover.

Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Message-Id: <d4555dd5146a54518c4d9d4efd996b7c745c6687.1589193382.git.lukasstraub2@web.de>
Reviewed-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
 migration/colo.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/migration/colo.c b/migration/colo.c
index 59639f519f..ea7d1e9d4e 100644
--- a/migration/colo.c
+++ b/migration/colo.c
@@ -436,12 +436,6 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
         goto out;
     }
 
-    qemu_event_reset(&s->colo_checkpoint_event);
-    colo_notify_compares_event(NULL, COLO_EVENT_CHECKPOINT, &local_err);
-    if (local_err) {
-        goto out;
-    }
-
     /* Disable block migration */
     migrate_set_block_enabled(false, &local_err);
     if (local_err) {
@@ -503,6 +497,12 @@ static int colo_do_checkpoint_transaction(MigrationState *s,
         goto out;
     }
 
+    qemu_event_reset(&s->colo_checkpoint_event);
+    colo_notify_compares_event(NULL, COLO_EVENT_CHECKPOINT, &local_err);
+    if (local_err) {
+        goto out;
+    }
+
     colo_receive_check_message(s->rp_state.from_dst_file,
                        COLO_MESSAGE_VMSTATE_LOADED, &local_err);
     if (local_err) {
-- 
2.26.2



  parent reply	other threads:[~2020-06-01 18:45 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-01 18:39 [PULL 00/12] migration/virtiofs/hmp queue Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 01/12] migration/rdma: fix potential nullptr access in rdma_start_incoming_migration Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 02/12] migration/rdma: cleanup rdma context before g_free to avoid memleaks Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 03/12] hmp: Implement qom-get HMP command Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 04/12] hmp: Simplify qom-set Dr. David Alan Gilbert (git)
2020-06-02  6:47   ` Markus Armbruster
2020-06-02  9:26     ` Dr. David Alan Gilbert
2020-06-03 10:25       ` David Hildenbrand
2020-06-03 10:43         ` Dr. David Alan Gilbert
2020-06-03 11:31           ` David Hildenbrand
2020-06-03 11:33             ` David Hildenbrand
2020-06-03 11:43             ` Dr. David Alan Gilbert
2020-06-03 12:18               ` David Hildenbrand
2020-06-03 12:24                 ` Dr. David Alan Gilbert
2020-06-03 12:26                   ` David Hildenbrand
2020-06-03 12:43                     ` David Hildenbrand
2020-06-03 13:33                       ` Dr. David Alan Gilbert
2020-06-01 18:39 ` [PULL 05/12] virtiofsd: remove symlink fallbacks Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 06/12] migration/vmstate: Remove unnecessary MemoryRegion forward declaration Dr. David Alan Gilbert (git)
2020-06-01 18:39 ` [PULL 07/12] migration/colo.c: Use event instead of semaphore Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` [PULL 08/12] migration/colo.c: Use cpu_synchronize_all_states() Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` [PULL 09/12] migration/colo.c: Flush ram cache only after receiving device state Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` [PULL 10/12] migration/colo.c: Relaunch failover even if there was an error Dr. David Alan Gilbert (git)
2020-06-01 18:40 ` Dr. David Alan Gilbert (git) [this message]
2020-06-01 18:40 ` [PULL 12/12] migration/migration.c: Fix hang in ram_save_host_page Dr. David Alan Gilbert (git)
2020-06-02  9:22 ` [PULL 00/12] migration/virtiofs/hmp queue Peter Maydell

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=20200601184004.272784-12-dgilbert@redhat.com \
    --to=dgilbert@redhat.com \
    --cc=f4bug@amsat.org \
    --cc=lukasstraub2@web.de \
    --cc=mszeredi@redhat.com \
    --cc=pannengyuan@huawei.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=stefanha@redhat.com \
    /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).