[...] >> >> In testing with your patches, I did find I could only do at most one >> attach/detach cycle - a second attach for a running guest results in: >> >> error: internal error: unable to execute QEMU command 'chardev-add': >> attempt to add duplicate property 'charchannel0' to object (type >> 'container') > > Interesting, this test scenario works for me just fine. What's your qemu > version? Mine's v3.1.0-1709-g0b5e750bea; Looks like 3.1.0 is broken - it > does not removes the chardev. And running bisect shows this was changed > in e47f81b617684c4546af286d307b69014a83538a (merged Feb 7). If I use > unfixed qemu, the chardev is not removed on netdev_del, but trying to > remove it manually fails too: > > {"error": {"class": "GenericError", "desc": "Chardev 'charchannel1' is > busy"}} > > > So if users are using any qemu but the one from git, no matter what > libvirt does it won't help them. Might as well go with 2/5 and require > freshly start domain. > Well now... Nice detective work. So I had v3.0.0 in my (new) f29 laptop - I hadn't recently done a build from qemu source and run (explains an error on another guest I had where I was using a built qemu tree based on the 2.12 branch and the guest wasn't starting). So using a top of tree QEMU allows things to succeed now for me. Probably want to be sure to update the bz with what you found so that the history isn't lost and to note the problem for QE so that they don't file a bug against libvirt on it ;-)... So let's think about this series again... Patch1 - I think perhaps it could be replaced by removing @devstr since it's really not even used. It could also be a follow-up, IDC. If you go with the former, taken an implied R-by since @devstr doesn't need to be formulated. Then for Patch2 and Patch4 - you have my Reviewed-by: John Ferlan <jferlan@xxxxxxxxxx> for the patches as is. John [...]