[...]
>
> 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(a)redhat.com> for the patches as is.
John
[...]