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"));
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,
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);
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);
virBitmapPtr nodeset = NULL;
virDomainNumatuneMemMode mode;
+ VIR_DEBUG("Setting up process resource limits");
+
if (virLXCControllerGetNumadAdvice(ctrl, &auto_nodeset) < 0)
goto cleanup;
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;
{
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),