[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH v3 4/4] qemu-config: Add new -add-fd command line option



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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]