[systemd-devel] [PATCH] Fix systemd crash (on assert) during shutdown/reboot in unprivileged container

Lennart Poettering lennart at poettering.net
Fri Jan 23 04:54:57 PST 2015


On Fri, 16.01.15 19:32, Andrei Borzenkov (arvidjaar at gmail.com) wrote:

> В Thu, 15 Jan 2015 19:24:25 -0500
> Stéphane Graber <stgraber at ubuntu.com> пишет:
> 
> > @@ -871,6 +871,14 @@ static void mount_enter_unmounting(Mount *m) {
> >          m->control_command_id = MOUNT_EXEC_UNMOUNT;
> >          m->control_command = m->exec_command + MOUNT_EXEC_UNMOUNT;
> >  
> > +        /* Ignore any mounts under /dev, /proc or /sys */
> > +        if (path_startswith(m->where, "/dev/") ||
> > +            path_startswith(m->where, "/proc/") ||
> > +            path_startswith(m->where, "/sys/")) {
> > +                mount_set_state(m, MOUNT_DEAD);
> > +                return;
> > +        }
> > +
> 
> This does not look right either. I'd rather expect to a) set
> DefaultDependencies=no for these special mounts so that they are left
> at shutdown and b) ignore them in the final killing spree if needed
> (unless happens already).

I pretty much implemented this now, though instead of setting
DefaultDependencies=no for these mounts I just made
DefaultDependencies=yes have no effect for them. But the general
approach I agree with.

> If I as user do "systemctl stop /dev/pts" I expect it to
> unmount /dev/pts not fake "dead" state.

Well, /dev/pts is not a mount point systemd picks up anyway, so the
unit for that doesn't even exist. It's already exempted. But I do get
your point and I agree.

Lennart

-- 
Lennart Poettering, Red Hat


More information about the systemd-devel mailing list