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(a)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