Am 17.10.2012 06:16, schrieb Eric Blake: > I'm still seeing the corner case of: > > qemu-kvm -add-fd fd=3,set=1 -add-fd fd=4,set=2 4<&- > > where the dup(3) will populate fd 4 prior to the point where we get to > process the -add-fd fd=4 command to notice that the user started > qemu-kvm with fd 4 closed, and thus qemu will silently proceed to use > the wrong fd. > > On the other hand, I'm not sure if that corner case is worth worrying > about, or if we just chalk it up to user stupidity (aka libvirt > programmer stupidity) if they did something like that (most likely, > because the management app forgot to clear FD_CLOEXEC before exec()ing > qemu-kvm). If you specify an FD number that isn't actually open when qemu is stared, you can get any FD that qemu opens internally. I think the correct answer to this problem is "then don't do that". > Hmm, this makes me wonder if I can do something crazy like: > > qemu-kvm -add-fd fd=4,set=1 -qmp /dev/fdset/1 > > to open a monitor on the fd I just passed in? I think so. At least on my side it was intended to allow this. > And what if so, what then > happens on that monitor if I request that fdset 1 be removed? The same as with block devices: The fd stays open until the monitor connection is closed. A closed monitor also triggers fd garbage collection, so at this point the original fd would be closed (well, assuming that you had only one monitor). Kevin -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list