Re: avoid unmounts in unprivileged containers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Partially answering my own questions ...

The code that I was referring to (systemd-shutdown) that takes into account containerized environments (ConditionVirtualization) and avoids doing the unmounts, is invoked at a later stage in the shutdown cycle. By the time that this code executes, all the mountpoints that I care about (those extracted from /proc/pid/mountinfo at runtime) are already unmounted.

So I have no answer for my original question: is there any config knob to avoid doing unmounts during the container-shutdown process?

Thanks!

On Fri, Feb 19, 2021 at 7:17 PM Rodny Molina <rodnymolina@xxxxxxxxx> wrote:
Hi,

As part of a prototype I'm working on to run systemd within an unprivileged docker container, I would like to prevent mountpoints created at runtime from being unmounted during the container shutdown process. I understand that systemd creates "<blah>.mount" units dynamically for these mountpoints as they show up in /proc/pid/mountinfo, but after reading the docs + code, I don't see a way to avoid these unmounts during the shutdown.target execution.

Interestingly, I see that there's code that skips the unmounting cycle attending to the ConditionVirtualization / containeinarized settings, which is what I need, but I'm not able to see that code being called during the container shutdown -- probably i'm not understanding systemd's fsm unwinding logic well enough ...

Any suggestions?

Thanks!

PS: Last few logs obtained during my container shutdown process ...

---
Feb 20 03:00:23 08363a0a79ee umount[1273]: umount: /var/lib/kubelet: must be superuser to unmount.
Feb 20 03:00:23 08363a0a79ee systemd[1]: Received SIGCHLD from PID 1273 (umount).
Feb 20 03:00:23 08363a0a79ee systemd[1]: Child 1273 (umount) died (code=exited, status=32/n/a)
Feb 20 03:00:23 08363a0a79ee systemd[1]: var-lib-kubelet.mount: Child 1273 belongs to var-lib-kubelet.mount.
Feb 20 03:00:23 08363a0a79ee systemd[1]: var-lib-kubelet.mount: Mount process exited, code=exited, status=32/n/a
Feb 20 03:00:23 08363a0a79ee systemd[1]: var-lib-kubelet.mount: Changed unmounting -> mounted
Feb 20 03:00:23 08363a0a79ee systemd[1]: var-lib-kubelet.mount: Job 180 var-lib-kubelet.mount/stop finished, result=failed
Feb 20 03:00:23 08363a0a79ee systemd[1]: Failed unmounting /var/lib/kubelet.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-journald.service: Received EPOLLHUP on stored fd 47 (stored), closing.
Feb 20 03:00:23 08363a0a79ee systemd[1]: local-fs-pre.target changed active -> dead
Feb 20 03:00:23 08363a0a79ee systemd[1]: local-fs-pre.target: Job 156 local-fs-pre.target/stop finished, result=done
Feb 20 03:00:23 08363a0a79ee systemd[1]: Stopped target Local File Systems (Pre).
Feb 20 03:00:23 08363a0a79ee systemd[1]: umount.target changed dead -> active
Feb 20 03:00:23 08363a0a79ee systemd[1]: umount.target: Job 168 umount.target/start finished, result=done
Feb 20 03:00:23 08363a0a79ee systemd[1]: Reached target Unmount All Filesystems.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-tmpfiles-setup-dev.service: Succeeded.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-tmpfiles-setup-dev.service: Service restart not allowed.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-tmpfiles-setup-dev.service: Changed exited -> dead
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-tmpfiles-setup-dev.service: Job 105 systemd-tmpfiles-setup-dev.service/stop finished, result=done
Feb 20 03:00:23 08363a0a79ee systemd[1]: Stopped Create Static Device Nodes in /dev.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-sysusers.service: Succeeded.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-sysusers.service: Service restart not allowed.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-sysusers.service: Changed exited -> dead
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-sysusers.service: Job 164 systemd-sysusers.service/stop finished, result=done
Feb 20 03:00:23 08363a0a79ee systemd[1]: Stopped Create System Users.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-remount-fs.service: Succeeded.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-remount-fs.service: Service restart not allowed.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-remount-fs.service: Changed exited -> dead
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-remount-fs.service: Job 117 systemd-remount-fs.service/stop finished, result=done
Feb 20 03:00:23 08363a0a79ee systemd[1]: Stopped Remount Root and Kernel File Systems.
Feb 20 03:00:23 08363a0a79ee systemd[1]: shutdown.target changed dead -> active
Feb 20 03:00:23 08363a0a79ee systemd[1]: shutdown.target: Job 89 shutdown.target/start finished, result=done
Feb 20 03:00:23 08363a0a79ee systemd[1]: Reached target Shutdown.
Feb 20 03:00:23 08363a0a79ee systemd[1]: final.target changed dead -> active
Feb 20 03:00:23 08363a0a79ee systemd[1]: final.target: Job 167 final.target/start finished, result=done
Feb 20 03:00:23 08363a0a79ee systemd[1]: Reached target Final Step.
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-halt.service: Failed to reset devices.allow/devices.deny: Operation not permitted
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-halt.service: Failed to set invocation ID on control group /system.slice/systemd-halt.service, ignoring: Operation not permitted
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-halt.service: Failed to remove delegate flag on control group /system.slice/systemd-halt.service, ignoring: Operation not permitted
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-halt.service: Passing 0 fds to service
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-halt.service: About to execute: /usr/bin/systemctl --force halt
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-halt.service: Forked /usr/bin/systemctl as 1281
Feb 20 03:00:23 08363a0a79ee systemd[1281]: PR_SET_MM_ARG_START failed, attempting PR_SET_MM_ARG_END hack: Operation not permitted
Feb 20 03:00:23 08363a0a79ee systemd[1281]: PR_SET_MM_ARG_END hack failed, proceeding without: Operation not permitted
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-halt.service: Changed dead -> start
Feb 20 03:00:23 08363a0a79ee systemd[1]: Starting Halt...
Feb 20 03:00:23 08363a0a79ee systemd[1281]: systemd-halt.service: Executing: /usr/bin/systemctl --force halt
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-journald.service: Got notification message from PID 185 (FDSTORE=1)
Feb 20 03:00:23 08363a0a79ee systemd[1]: systemd-journald.service: Added fd 24 (n/a) to fd store.
Hangup
---


--
/Rodny


--
/Rodny
_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux