[libvirt] [Qemu-devel] [PATCH v2 2/4] qapi: Add passfd QMP command

Luiz Capitulino lcapitulino at redhat.com
Thu Jun 14 13:28:51 UTC 2012


On Wed, 13 Jun 2012 18:07:43 -0400
Corey Bryant <coreyb at linux.vnet.ibm.com> wrote:

> 
> 
> On 06/13/2012 04:47 PM, Eric Blake wrote:
> > On 06/13/2012 02:25 PM, Corey Bryant wrote:
> >
> >>> Also, getfd automatically closes a fd if an existing fdname is passed
> >>> again.
> >>> I don't think this is a good behavior, I think pass-fd should fail
> >>> instead
> >>> (note that we can't fix getfd though).
> >>>
> >>
> >> I agree.  It makes sense to fail rather than blindly closing the
> >> existing fd.  It can be closed explicitly with closefd if the user wants
> >> it closed.
> >
> > Hmm - what happens if I do 'pass-fd name', learn that qemu is using fd
> > 42, then do 'getfd name'?  I silently wipe out fd 42 and replace it with
> > the new fd passed in by getfd.  Which means my use of /dev/fd/42 will
> > now be broken.
> >
> > Obviously that means that 'getfd' should NOT be used by any application
> > using 'pass-fd', and that libvirt should NOT be reusing names (I think
> > the latter is already true).  But I agree that for back-compat we can't
> > get rid of the current (evil) semantics of a duplicated 'getfd'.
> 
> Yes, users need to be careful and understand how the commands work.  I 
> don't think it's a hard rule that 'getfd' can't be used by an 
> application that uses 'pass-fd'.  If it were, we could put the fds on 
> separate lists:
> 
>   struct Monitor {
>       ...
>       QLIST_HEAD(,mon_fd_t) fds;
> +    QLIST_HEAD(,mon_fd_t) pass_fds;
>   };

We'd a different closefd command if we do this.

> But I don't think this is necessary, so I'll plan on documenting them well.

Agreed, I don't think this is necessary.




More information about the libvir-list mailing list