[libvirt] [PATCH] lxc: create the required directories upon driver start
Ján Tomko
jtomko at redhat.com
Wed Apr 8 16:00:15 UTC 2015
On Tue, Apr 07, 2015 at 04:29:42PM +0200, Lubomir Rintel wrote:
> Hi Cedric,
>
> On Tue, 2015-04-07 at 16:18 +0200, Cedric Bosdonnat wrote:
> > Hello Lubomir
> >
> > On Tue, 2015-04-07 at 15:37 +0200, Lubomir Rintel wrote:
> > > /var/run may reside on a tmpfs and we fail to create the PID file if
> > > /var/run/lxc does not exist.
> >
> > Just mentioning the fact that this folder may not exist is OK. We have
> > the same problem right after the libvirt installation too when creating
> > an lxc domain.
> >
> > > Other drivers (well, BHYVE) seem to do the same thing.
> > >
> > > Signed-off-by: Lubomir Rintel <lkundrak at v3.sk>
> > > ---
> > > src/lxc/lxc_driver.c | 14 ++++++++++++++
> > > 1 file changed, 14 insertions(+)
> > >
> > > diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
> > > index 245000d..4363898 100644
> > > --- a/src/lxc/lxc_driver.c
> > > +++ b/src/lxc/lxc_driver.c
> > > @@ -1648,6 +1648,20 @@ static int lxcStateInitialize(bool privileged,
> > > if (!(caps = virLXCDriverGetCapabilities(lxc_driver, false)))
> > > goto cleanup;
> > >
> > > + if (virFileMakePath(LXC_LOG_DIR) < 0) {
> > > + virReportSystemError(errno,
> > > + _("Failed to mkdir %s"),
> > > + LXC_LOG_DIR);
> > > + goto cleanup;
> > > + }
> >
> > Isn't that one automatically created so far?
>
Yes, logDir is created by lxcProcessStart
> Not sure really. I didn't run into any problems with this one, just
> noticed that BYHIVE creates it upon start and I didn't see LXC doing
> that...
>
> > > +
> > > + if (virFileMakePath(LXC_STATE_DIR) < 0) {
> >
> > I'ld rather use lxc_driver->config->stateDir instead LXC_STATE_DIR. I
> > wrote a patch for that this morning and was about to email it ;)
>
And using cfg->stateDir is nicer, even though LXC domains can be only
started by a privileged daemon so it's always filled with the
compiled-in value.
> Well, I don't really know.
>
> I was thinking that maybe virPidFileWritePath() should create the path
> when needed, analogously to virPidFileWrite(), but creating it on start
> seemed a bit more consostent and less laborous.
Oddly enough, virDomainSaveState does auto-create the directory, but we
can only get there after we've successfully run a domain.
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150408/131f7eb6/attachment-0001.sig>
More information about the libvir-list
mailing list