[libvirt] [PATCH v2 02/13] Import stripped down virtlockd code as basis of virtlogd

Daniel P. Berrange berrange at redhat.com
Wed Nov 18 15:05:07 UTC 2015


On Wed, Nov 18, 2015 at 03:54:37PM +0100, Peter Krempa wrote:
> On Thu, Nov 12, 2015 at 17:18:59 +0000, Daniel Berrange wrote:
> > Copy the virtlockd codebase across to form the initial virlogd
> > code. Simple search & replace of s/lock/log/ and gut the remote
> > protocol & dispatcher. This gives us a daemon that starts up
> > and listens for connections, but does nothing with them.
> > 
> > Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> > ---
> 
> [...]
> 
> > diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c
> > new file mode 100644
> > index 0000000..184076c
> > --- /dev/null
> > +++ b/src/logging/log_daemon.c
> > @@ -0,0 +1,1177 @@
> > +/*
> > + * log_daemon.c: log management daemon
> > + *
> > + * Copyright (C) 2006-2015 Red Hat, Inc.
> 
> Um 2006? Here and in every other header.

All this code is cut+paste from the virtlockd code, which is in
turn cut+paste from libvirtd. So preserving the original
copyright lines as-is is appropriate.

> > +VIR_ENUM_DECL(virDaemonErr)
> > +VIR_ENUM_IMPL(virDaemonErr, VIR_LOG_DAEMON_ERR_LAST,
> > +              "Initialization successful",
> > +              "Unable to obtain pidfile",
> > +              "Unable to create rundir",
> > +              "Unable to initialize libvirt",
> 
> Will this need to call libvirt? Or should this be 'virtlogd'?

I think I can probably delete this error entirely - I think it
is unused.


> > +/*
> > + * Set up the logging environment
> > + * By default if daemonized all errors go to the logfile libvirtd.log,
> > + * but if verbose or error debugging is asked for then also output
> > + * informational and debug messages. Default size if 64 kB.
> 
> The logging ring buffer isn't present any more.

Hah, yeah, should be killed.



> > diff --git a/src/logging/log_protocol.x b/src/logging/log_protocol.x
> > new file mode 100644
> > index 0000000..9b8fa41
> > --- /dev/null
> > +++ b/src/logging/log_protocol.x
> > @@ -0,0 +1,22 @@
> > +/* -*- c -*-
> > + */
> > +
> > +%#include "internal.h"
> > +
> > +typedef opaque virLogManagerProtocolUUID[VIR_UUID_BUFLEN];
> > +
> > +/* Length of long, but not unbounded, strings.
> > + * This is an arbitrary limit designed to stop the decoder from trying
> > + * to allocate unbounded amounts of memory when fed with a bad message.
> > + */
> > +const VIR_LOG_MANAGER_PROTOCOL_STRING_MAX = 65536;
> 
> This is going to be modified in the next patch. Shouldn't you use the
> right value directly here?

Yep, good point.



> > +
> > +# The maximum number of concurrent client connections to allow
> > +# over all sockets combined.
> > +# Each running virtual machine will require one open connection
> > +# to virtlogd. So 'max_clients' will affect how many VMs can
> > +# be run on a host
> > +#max_clients = 1024
> 
> Should we mention this also in the libvirtd config file?

No, this doesn't have an impact on the max_clients requirement for
libvirtd.


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




More information about the libvir-list mailing list