On Tue, Aug 29, 2017 at 11:17:13AM +0200, Michal Privoznik wrote: > On 08/28/2017 02:56 PM, Pavel Hrdina wrote: > > Signed-off-by: Pavel Hrdina <phrdina@xxxxxxxxxx> > > --- > > .../qemuxml2argv-channel-reconnect.args | 31 +++++++++++++++ > > ...uxml2argv-chardev-reconnect-invalid-timeout.xml | 23 +++++++++++ > > .../qemuxml2argv-chardev-reconnect.args | 40 +++++++++++++++++++ > > .../qemuxml2argv-chardev-reconnect.xml | 46 ++++++++++++++++++++++ > > tests/qemuxml2argvtest.c | 11 ++++++ > > 5 files changed, 151 insertions(+) > > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args > > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect-invalid-timeout.xml > > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.args > > create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-chardev-reconnect.xml > > > > diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args b/tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args > > new file mode 100644 > > index 0000000000..43a5d5bb3e > > --- /dev/null > > +++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-reconnect.args > > @@ -0,0 +1,31 @@ > > +LC_ALL=C \ > > +PATH=/bin \ > > +HOME=/home/test \ > > +USER=test \ > > +LOGNAME=test \ > > +QEMU_AUDIO_DRV=none \ > > +/usr/bin/qemu-system-i686 \ > > +-name QEMUGuest1 \ > > +-S \ > > +-M pc \ > > +-m 214 \ > > +-smp 1,sockets=1,cores=1,threads=1 \ > > +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ > > +-nographic \ > > +-nodefconfig \ > > +-nodefaults \ > > +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ > > +server,nowait \ > > +-mon chardev=charmonitor,id=monitor,mode=readline \ > > +-no-acpi \ > > +-boot c \ > > +-device virtio-serial-pci,id=virtio-serial1,bus=pci.0,addr=0xa \ > > +-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 \ > > +-usb \ > > +-chardev socket,id=charchannel0,host=localhost,port=1234,reconnect=10 \ > > +-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,\ > > +id=channel0,name=asdf \ > > +-chardev socket,id=charchannel1,path=/tmp/channel/domain--1-QEMUGuest1/fdsa,\ > > +server,nowait,reconnect=10 \ > > This doesn't look right. How come a server can have reconnect at the > same time? So there are two issues with our code: 1. We successfully parse this configuration: ... <channel type='unix'> <source mode='connect'/> <target type='virtio' name='test'/> </channel> ... While formatting the XML we ignore the source element if there is no path and the code starting a domain generates a new path and set's the mode to 'bind'. With the reconnect patches if we parse the reconnect it's unconditionally put to the command line if it was parsed even though the mode was changed. 2. This test uses a path that matches a pattern of automatically generated paths by libvirt: ... <source mode='connect' path='/tmp/channel/domain-oldname/fdsa'> <reconnect enabled='no'/> </source> ... and our code removes that path in order to get it automatically generated following new rules and also changes the mode to "bind" and that leads to the same issue as for the first example. I'll send a patches to fix it. Pavel
Attachment:
signature.asc
Description: PGP signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list