qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v12 09/10] migration: Implement MigrateChannelList to hmp mig


From: Het Gala
Subject: Re: [PATCH v12 09/10] migration: Implement MigrateChannelList to hmp migration flow.
Date: Wed, 11 Oct 2023 19:03:58 +0530
User-agent: Mozilla Thunderbird

On 10/10/2023 2:38 AM, Fabiano Rosas wrote:
Het Gala <het.gala@nutanix.com> writes:

Integrate MigrateChannelList with all transport backends
(socket, exec and rdma) for both src and dest migration
endpoints for hmp migration.

Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Signed-off-by: Het Gala <het.gala@nutanix.com>
---
 migration/migration-hmp-cmds.c | 15 +++++++++++++--
 migration/migration.c          |  5 ++---
 migration/migration.h          |  3 ++-
 3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/migration/migration-hmp-cmds.c b/migration/migration-hmp-cmds.c
index a2e6a5c51e..21b57f7ed8 100644
--- a/migration/migration-hmp-cmds.c
+++ b/migration/migration-hmp-cmds.c
@@ -441,9 +441,14 @@ void hmp_migrate_incoming(Monitor *mon, const QDict *qdict)
 {
     Error *err = NULL;
     const char *uri = qdict_get_str(qdict, "uri");
+    MigrationChannelList *caps = NULL;
+    g_autoptr(MigrationChannel) channel = NULL;
No g_autoptr here because the list code will already free the channel.
Yes, g_autoptr is not needed here. Removing g_autoptr passes all the make checks (even -qcow2 181 test) but the return value is not right of the hmp_migrate() function.
 
-    qmp_migrate_incoming(uri, false, NULL, &err);
+    migrate_uri_parse(uri, &channel, &err);
Need to check the return value of this function.

$ (echo "migrate -d unix:") | ./qemu-system-x86_64 -monitor stdio -display none
QEMU 8.1.50 monitor - type 'help' for more information
(qemu) migrate -d unix:
Segmentation fault (core dumped)

Yes, there is something wrong here, expected result should have been :

(qemu) migrate -d unix:
Error: invalid Unix socket address

or

(qemu) migrate -d tcp:12.11.34.142
Error: error parsing address '12.11.34.142'

I am investigating it right now. Will update on it and try to resolve it soon.

+    QAPI_LIST_PREPEND(caps, channel);
 
+    qmp_migrate_incoming(NULL, true, caps, &err);
+    qapi_free_MigrationChannelList(caps);
     hmp_handle_error(mon, err);
 }
 
@@ -730,9 +735,15 @@ void hmp_migrate(Monitor *mon, const QDict *qdict)
     bool resume = qdict_get_try_bool(qdict, "resume", false);
     const char *uri = qdict_get_str(qdict, "uri");
     Error *err = NULL;
+    MigrationChannelList *caps = NULL;
+    g_autoptr(MigrationChannel) channel = NULL;
 
-    qmp_migrate(uri, false, NULL, !!blk, blk, !!inc, inc,
+    migrate_uri_parse(uri, &channel, &err);
+    QAPI_LIST_PREPEND(caps, channel);
+
+    qmp_migrate(NULL, true, caps, !!blk, blk, !!inc, inc,
                  false, false, true, resume, &err);
+    qapi_free_MigrationChannelList(caps);
     if (hmp_handle_error(mon, err)) {
         return;
     }
Regards,
Het Gala
reply via email to

[Prev in Thread] Current Thread [Next in Thread]