diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index e848e8e407e2ab89f5c91d44a9e6c1328f5913bb..cc20b6d84fa1e613ecf731c9012e5fd01cdaae1e 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -274,6 +274,10 @@ static int lxcContainerSetupFDs(int *ttyfd, size_t i; size_t j; + VIR_DEBUG("Logging from the container init will now cease " + "as the FDs are about to be closed for exec of " + "the container init process"); + if (setsid() < 0) { virReportSystemError(errno, "%s", _("setsid failed")); @@ -2250,6 +2254,7 @@ static int lxcContainerChild(void *data) if (virSecurityManagerSetProcessLabel(argv->securityDriver, vmDef) < 0) goto cleanup; + VIR_DEBUG("Setting up inherited FDs"); VIR_FORCE_CLOSE(argv->handshakefd); VIR_FORCE_CLOSE(argv->monitor); if (lxcContainerSetupFDs(&ttyfd, @@ -2264,11 +2269,13 @@ static int lxcContainerChild(void *data) VIR_FORCE_CLOSE(argv->handshakefd); if (ret == 0) { + VIR_DEBUG("Executing init binary"); /* this function will only return if an error occurred */ ret = virCommandExec(cmd); } if (ret != 0) { + VIR_DEBUG("Tearing down container"); virErrorPtr err = virGetLastError(); if (err && err->message) fprintf(stderr, "%s\n", err->message); @@ -2379,6 +2386,7 @@ int lxcContainerStart(virDomainDefPtr def, cflags |= CLONE_NEWNET; } + VIR_DEBUG("Cloning container init process"); pid = clone(lxcContainerChild, stacktop, cflags, &args); VIR_FREE(stack); VIR_DEBUG("clone() completed, new container PID is %d", pid); diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 00d0e2362851e211653c7c2c49db1c3ee890cd37..03dff29cce355b5e42403dd13b9f358d99f8c682 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -693,6 +693,8 @@ static int virLXCControllerSetupResourceLimits(virLXCControllerPtr ctrl) virBitmapPtr nodeset = NULL; virDomainNumatuneMemMode mode; + VIR_DEBUG("Setting up process resource limits"); + if (virLXCControllerGetNumadAdvice(ctrl, &auto_nodeset) < 0) goto cleanup; @@ -1263,9 +1265,12 @@ static int virLXCControllerSetupUserns(virLXCControllerPtr ctrl) int ret = -1; /* User namespace is disabled for container */ - if (ctrl->def->idmap.nuidmap == 0) + if (ctrl->def->idmap.nuidmap == 0) { + VIR_DEBUG("No uid map, skipping userns setup"); return 0; + } + VIR_DEBUG("Setting up userns maps"); if (virAsprintf(&uid_map, "/proc/%d/uid_map", ctrl->initpid) < 0) goto cleanup; @@ -1866,9 +1871,12 @@ static int lxcSetPersonality(virDomainDefPtr def) { virArch altArch; + VIR_DEBUG("Checking for 32-bit personality"); altArch = lxcContainerGetAlt32bitArch(virArchFromHost()); if (altArch && (def->os.arch == altArch)) { + VIR_DEBUG("Setting personality to %s", + virArchToString(altArch)); if (personality(PER_LINUX32) < 0) { virReportSystemError(errno, _("Unable to request personality for %s on %s"), virArchToString(altArch),