"Daniel P. Berrange" <berra...@redhat.com> wrote: > Currently if an application initiates an outgoing migration, > it may or may not, get an error reported back on failure. If > the error occurs synchronously to the 'migrate' command > execution, the client app will see the error message. This > is the case for DNS lookup failures. If the error occurs > asynchronously to the monitor command though, the error > will be thrown away and the client left guessing about > what went wrong. This is the case for failure to connect > to the TCP server (eg due to wrong port, or firewall > rules, or other similar errors). > > In the future we'll be adding more scope for errors to > happen asynchronously with the TLS protocol handshake. > TLS errors are hard to diagnose even when they are well > reported, so discarding errors entirely will make it > impossible to debug TLS connection problems. > > Management apps which do migration are already using > 'query-migrate' / 'info migrate' to check up on progress > of background migration operations and to see their end > status. This is a fine place to also include the error > message when things go wrong. > > This patch thus adds an 'error-desc' field to the > MigrationInfo struct, which will be populated when > the 'status' is set to 'failed': > > (qemu) migrate -d tcp:localhost:9001 > (qemu) info migrate > capabilities: xbzrle: off rdma-pin-all: off auto-converge: off zero-blocks: > off compress: off events: off x-postcopy-ram: off > Migration status: failed (Error connecting to socket: Connection refused) > total time: 0 milliseconds > > In the HMP, when doing non-detached migration, it is > also possible to display this error message directly > to the app. > > (qemu) migrate tcp:localhost:9001 > Error connecting to socket: Connection refused > > Or with QMP > > { > "execute": "query-migrate", > "arguments": {} > } > { > "return": { > "status": "failed", > "error-desc": "address resolution failed for myhost:9000: No address > associated with hostname" > } > } > > Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > Signed-off-by: Daniel P. Berrange <berra...@redhat.com> > ---
Reviewed-by: Juan Quintela <quint...@redhat.com>