提交 728c0e5d 编写于 作者: D David Dai 提交者: Jiri Denemark

qemu: Fix live migration over RDMA with IPv6

Using libvirt to do live migration over RDMA via IPv6 address failed.

For example:
    rhel73_host1_guest1 qemu+ssh://[deba::2222]/system --verbose
root@deba::2222's password:
error: internal error: unable to execute QEMU command 'migrate': RDMA
ERROR: could not rdma_getaddrinfo address deba

As we can see, the IPv6 address used by rdma_getaddrinfo() has only
"deba" part because we didn't properly enclose the IPv6 address in []
and passed rdma:deba::2222:49152 as the migration URI in
qemuMonitorMigrateToHost.
Signed-off-by: NDavid Dai <zdai@linux.vnet.ibm.com>
上级 79692c38
......@@ -2577,8 +2577,12 @@ qemuMonitorMigrateToHost(qemuMonitorPtr mon,
QEMU_CHECK_MONITOR(mon);
if (virAsprintf(&uri, "%s:%s:%d", protocol, hostname, port) < 0)
if (strchr(hostname, ':')) {
if (virAsprintf(&uri, "%s:[%s]:%d", protocol, hostname, port) < 0)
return -1;
} else if (virAsprintf(&uri, "%s:%s:%d", protocol, hostname, port) < 0) {
return -1;
}
if (mon->json)
ret = qemuMonitorJSONMigrate(mon, flags, uri);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册