qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] Multiple QMP socket clients


From: Daniel P. Berrange
Subject: Re: [Qemu-devel] Multiple QMP socket clients
Date: Tue, 11 Oct 2016 15:17:04 +0100
User-agent: Mutt/1.7.0 (2016-08-17)

On Tue, Oct 11, 2016 at 03:08:34PM +0100, Dr. David Alan Gilbert wrote:
> * Daniel P. Berrange (address@hidden) wrote:
> > On Tue, Oct 11, 2016 at 12:26:37PM +0200, Samuel Ortiz wrote:
> > > Hi,
> > > 
> > > On a qemu instance started with a qmp unix socket:
> > > 
> > > -qmp unix:/tmp/ctrl.sock,server,nowait
> > > 
> > > I am trying to have multiple clients working on that socket but
> > > although the qmp server seems to accept the connections, only the first
> > > connected client gets his request processed. The next client requests
> > > will just hang until the first one exits.
> > > 
> > > Is that an intended behaviour ?
> > 
> > Yes, the character device code is designed around the idea of a single
> > endpoint.
> > 
> > In the case of the monitor you could work around it by adding multiple
> > -qmp arguemnts, each with different socket. Of course you have to make
> > sure each client doesn't trample on the other client when doing this.
> 
> But why does it accept the connection?
> I thought you could say only accept a single connection on a socket.
> (The backlog parameter to listen(2) but I can't find out listen.)

QEMU won't accept the connection, as while it is still listen()ing on
the socket, it is not poll()ing for incoming clients, so will never
trigger accept(). The kernel will queue the incoming connection until
QEMU starts polling for clients again. From the client POV this is
indistinguishable from QEMU accepting the client, but not processing
I/O on it.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|



reply via email to

[Prev in Thread] Current Thread [Next in Thread]