mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-10 23:07:44 +00:00
lxc: Drop container stdio as late as possible
Makes it more likely we get useful error output in the logs
This commit is contained in:
parent
02e86910e2
commit
eee1763c8c
@ -751,9 +751,9 @@ static int lxcContainerChild( void *data )
|
||||
{
|
||||
lxc_child_argv_t *argv = data;
|
||||
virDomainDefPtr vmDef = argv->config;
|
||||
int ttyfd;
|
||||
int ttyfd = -1;
|
||||
int ret = -1;
|
||||
char *ttyPath;
|
||||
char *ttyPath = NULL;
|
||||
virDomainFSDefPtr root;
|
||||
virCommandPtr cmd = NULL;
|
||||
|
||||
@ -786,16 +786,8 @@ static int lxcContainerChild( void *data )
|
||||
virReportSystemError(errno,
|
||||
_("Failed to open tty %s"),
|
||||
ttyPath);
|
||||
VIR_FREE(ttyPath);
|
||||
goto cleanup;
|
||||
}
|
||||
VIR_FREE(ttyPath);
|
||||
|
||||
if (lxcContainerSetStdio(argv->monitor, ttyfd) < 0) {
|
||||
VIR_FORCE_CLOSE(ttyfd);
|
||||
goto cleanup;
|
||||
}
|
||||
VIR_FORCE_CLOSE(ttyfd);
|
||||
|
||||
if (lxcContainerSetupMounts(vmDef, root) < 0)
|
||||
goto cleanup;
|
||||
@ -806,17 +798,28 @@ static int lxcContainerChild( void *data )
|
||||
|
||||
/* rename and enable interfaces */
|
||||
if (lxcContainerRenameAndEnableInterfaces(argv->nveths,
|
||||
argv->veths) < 0)
|
||||
argv->veths) < 0) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
/* drop a set of root capabilities */
|
||||
if (lxcContainerDropCapabilities() < 0)
|
||||
goto cleanup;
|
||||
|
||||
/* this function will only return if an error occured */
|
||||
ret = virCommandExec(cmd);
|
||||
if (lxcContainerSetStdio(argv->monitor, ttyfd) < 0) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
cleanup:
|
||||
VIR_FREE(ttyPath);
|
||||
VIR_FORCE_CLOSE(ttyfd);
|
||||
|
||||
if (ret == 0) {
|
||||
/* this function will only return if an error occured */
|
||||
ret = virCommandExec(cmd);
|
||||
}
|
||||
|
||||
virCommandFree(cmd);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user