[Bug 925513] Re: plymouth should not run in container
Serge Hallyn
925513 at bugs.launchpad.net
Fri Feb 17 02:36:24 UTC 2012
Quoting Steve Langasek (steve.langasek at canonical.com):
> On Thu, Feb 16, 2012 at 02:25:36PM -0000, Serge Hallyn wrote:
> > regarding whether disabling plymouth is the right fix: I don't know the
> > mechanisms plymouth uses.
>
> Well, I'm happy to answer questions you have on this, but I don't understand
> what issue you're trying to address by disabling plymouth. The bug
> description says only that:
>
> > As stgraber said, "it writes some error messages to /var/log/upstart (when
> > you have logging) and sometimes to the console".
>
> But a) that's not true for values of "it" == "plymouth" (maybe this refers
> to upstart?), and b) it's not clear to me what behavior you expect for the
> various messages if plymouth is disabled - particularly the ones that are
> *actually* being routed to plymouth, which may require some sort of user
> interaction.
>
> > 1. for system log entries, the right fix will be a syslog namespace,
> > which doesn't yet exist.
>
> plymouth has nothing to do with syslog. It captures *console* output to
> /var/log/boot.log, but that's a secondary function and doesn't use syslog
> for output.
Does it write it straight to /var/log/boot.log, or does it do it through
syslog(2) or syslog(3)? If it writes straight to /var/log/boot.log then
there should be no problem.
> > 2. if it uses proc files, we may be able to use apparmor to protect from
> > plymouth, though that may make plymouth fail and cause the container to
> > not boot right. The right fix would be a mix of user namespaces and
> > proc file access filtering.
>
> Plymouth uses /proc/cmdline and /proc/self/fd. Are these a problem in
> lxc?
/proc/self/fd is correct. /proc/cmdline will be the host's kernel
cmdline, which shouldn't exactly be a problem but may be misleading.
> > 3. if it uses devices (ioctls or writes), we may be able to use apparmor
> > and/or the devices namespace to protect from plymouth, but a device
> > namespace will be the right fix.
>
> Oh, it definitely uses devices. At a minimum, it expects to be able to open
> /dev/console. It also generally expects to make use of /dev/fb, /dev/tty0,
> /dev/tty1, and a few others. I had assumed that there is some sort of
> virtualized console in the container that would be exposed with the usual
> device name. If there isn't, then there's definitely no point in running
> plymouth in a container.
/dev/console and /dev/tty{1-4} are bind-mounted pty devices, and are ok
for it to use. /dev/fb is not available in the container - I don't see
/dev/fb0 at all, and the devices cgroup will refuse the container the
rights to read or write it. Otherwise it would be a problem as that is
not virtualized.
Steve, it sounds to me like we should mark this bug as wontfix.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to plymouth in Ubuntu.
https://bugs.launchpad.net/bugs/925513
Title:
plymouth should not run in container
Status in “lxc” package in Ubuntu:
Confirmed
Status in “plymouth” package in Ubuntu:
Incomplete
Bug description:
Once upstart knows whether it is running in a container, plymouth
should not run in a container. As stgraber said, "it writes some
error messages to /var/log/upstart (when you have logging) and
sometimes to the console".
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/lxc/+bug/925513/+subscriptions
More information about the foundations-bugs
mailing list