mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-03 20:01:16 +00:00
qemu: Fix xml dump of autogenerated websocket
When save/migrate a domain and we autogenerated a port, then if we print the inactive domain config, write out a -1 for the socket value; otherwise, it's possible that the subsequent start will fail if the autogenerated websocket used conflicts with an existing running config that also used autogenerated websockets. Examples: == A. Can not restore domain with autoconfigured websocket. domain 1 and 2 have autoconfigured websocket. 1. domain 1 is started then, saved 2. domain 2 is started 3. domain 1 restoration is failed: error: internal error: qemu unexpectedly closed the monitor: 2016-11-21T10:23:11.356687Z qemu-kvm: -vnc 0.0.0.0:2,websocket=5700: Failed to start VNC server on `(null)': Failed to bind socket: Address already in use == B. Can not migrate domain with autoconfigured websocket. domain 1 on host A, domain 2 on host B, both have autoconfigured websocket 1. domain 1 started, domain 2 started 2. domain 1 migration to host B is failed with the above error.
This commit is contained in:
parent
1215965a4c
commit
61a0026a94
@ -22762,7 +22762,10 @@ virDomainGraphicsDefFormat(virBufferPtr buf,
|
||||
virBufferAsprintf(buf, " autoport='%s'",
|
||||
def->data.vnc.autoport ? "yes" : "no");
|
||||
|
||||
if (def->data.vnc.websocket)
|
||||
if (def->data.vnc.websocketGenerated &&
|
||||
(flags & VIR_DOMAIN_DEF_FORMAT_INACTIVE))
|
||||
virBufferAddLit(buf, " websocket='-1'");
|
||||
else if (def->data.vnc.websocket)
|
||||
virBufferAsprintf(buf, " websocket='%d'", def->data.vnc.websocket);
|
||||
|
||||
virDomainGraphicsListenDefFormatAddr(buf, glisten, flags);
|
||||
|
Loading…
Reference in New Issue
Block a user